Folder0とその中のサブフォルダーとファイルにこの構造があるとします。
folder0
subfolder01
file011
file012
subfolder02
file021
file01
file02
メインフォルダー内のすべてのファイルをコピーしたいfolder0
他のどこかに、すべてのファイルが1つのディレクトリにあるように?どうやってやるの?使った
cp --recursive folder0address targetfolderaddress
しかし、サブフォルダーはターゲットフォルダーにコピーされました。フォルダーではなく、ディレクトリーとサブディレクトリー内のすべてのファイルが必要です。ターゲットフォルダで以下のようなものを意味します:
targetfolder
file011
file012
file021
file01
file02
find
を使用:
find folder0 -type f -exec cp {} targetfolder \;
GNU coreutils
を使用すると、より効率的に実行できます。
find folder0 -type f -exec cp -t targetfolder {} +
前者のバージョンはコピーされたファイルごとにcp
を実行しますが、後者はcp
を1回だけ実行します。
Zshのおかげで **
for recursive globbing and glob qualifier .
通常のファイルのみに一致させるには:
cp -p folder0/**/*(.) targetfolder
またはxargsを使用する
find folder0 -type f | xargs -I {} cp -v {} targetfolder;
何が起こっているかを表示するには、-vを使用します。