ほとんどの場合に機能するLinuxで再帰的/深いディレクトリコピーを作成するための優れた一般的な方法は何ですか?私はcp -R
のような簡単なものとかなり精巧なcpio
の呪文を使ってきました。どちらか一方をもう一方よりも好む大きな長所または短所はありますか?どれを最も頻繁に使用しますか?
NAME
cp - copy files and directories
-a, --archive
same as -dpR
-d same as --no-dereference --preserve=links
-p same as --preserve=mode,ownership,timestamps
-R, -r, --recursive
copy directories recursively
だからあなたの質問に答えて:
cp -a /foo /bar
シンボリックリンクとファイル/ディレクトリ 'mode' 'ownership'& 'timestamps'を保持しながら、ディレクトリ/ fooからディレクトリ/ barにすべてを再帰的にコピーします。
私は"cd $ srcdir; tar -c。| tar -C $ destdir -x"のようなコマンドを最も頻繁に使用しています。ただし、rsync -a $ src $ dstも使用します。
Tarソリューションの最大の強みは、何年も前にcpio、rsync、または再帰的にコピーするcpがなかったシステムで使用しなければならないことです。タールはどこにでもあります。よく使ったので頭にくっついてますが、もっとエレガントな方法があると思います。それは常に仕事が正しく行われているように見えるので、私は本当に代わりを見つけるのに一生懸命に目を向けたことがありません。
Rsyncを見てください。2つのディレクトリを最新の状態に保つとコピーするデータが少なくなるので、気に入っています。リモートで動作することもあります。最も単純な形式では、rsync -a/src/dest
rsync
は優れたツールです。データ転送のスイスアーミーナイフです。とてもシンプルで強力なツールです。使い始めると夢中になります。