Linuxで大量のファイルをディレクトリ構造を維持したままコピーしたい
source_dir
配下にある *.x
というファイル(同じディレクトリ階層には *.y
とか違う拡張子のファイルがあるがそれらを除いて)を、ディレクトリ構造を維持したまま destnation_dir
にコピーするには、
cd source_dir/
cp --parent */*/*.x destnation_dir/
のようにすると実現できます。
しかしながら、*.x
がたくさんあるとコマンドラインサイズオーバーでエラーになってしまいます。そのような場合、どうするのがいいのでしょうか?
例えば、
cd source_dir/
find . -name "*.x" | xargs tar cf - | tar xf - -C destnation_dir/
のようにしてもできるようですが。