ソース サブディレクトリの特定のセット (数百個) から「フラットな」ディレクトリ構造にファイルを定期的にコピーする必要があります。つまり、複数のソース ディレクトリのすべてのファイルを 1 つの宛先ディレクトリにコピーしたいのですが、できません。ソースサブディレクトリを調べて、宛先ディレクトリにサブディレクトリフォルダー構造を再作成しないファイルをコピーできるコピー方法を見つけたようです。
どんな助けでも感謝します。
ソース サブディレクトリの特定のセット (数百個) から「フラットな」ディレクトリ構造にファイルを定期的にコピーする必要があります。つまり、複数のソース ディレクトリのすべてのファイルを 1 つの宛先ディレクトリにコピーしたいのですが、できません。ソースサブディレクトリを調べて、宛先ディレクトリにサブディレクトリフォルダー構造を再作成しないファイルをコピーできるコピー方法を見つけたようです。
どんな助けでも感謝します。
sourcedir=/root/of/subdirectory/set
destdir=/where/the/files/go
find $sourcedir -type f -print | while read file; do cp $file $destdir; done
または (上書きを防ぐ)
find $sourcedir -type f -print | while read file; do base=$(basename $file); test -f $destdir/$base || cp $file $destdir; done
$sourcedir 内のファイルまたはサブディレクトリの名前にスペースが含まれている場合、これは機能しないことに注意してください。