ディレクトリ階層(ファイル省略)を別のディレクトリにコピーする方法は?

ディレクトリ階層(ファイル省略)を別のディレクトリにコピーする方法は?

別のディレクトリにコピーするサブディレクトリがあるディレクトリがあります。私の現在の素朴なアプローチは次のとおりです。

find src_dir -type d -exec mkdir -p dest_dir/{} \;

うまくいきますが、mkdir順番に多くの冗長呼び出しを行います。

また、参考までに以下を試しました。

# real fast
find src_dir -type d >/dev/null
# also real fast
find src_dir -type d -exec true {} +
# slower, but not as slow as mkdir
find src_dir -type d -exec true {} \;

冗長性を減らし、exec呼び出しを減らすより良い方法はありますか?

ベストアンサー1

rsyncとフィルタリング(-f)を使用すると、次のようにディレクトリをフィルタリングし、他のすべての項目をフィルタリングできます。

rsync -av -f "+ */" -f "- *" src_dir/ new_dir/

おすすめ記事