シェルを使用してディレクトリの「正確な」コピーを作成する方法

シェルを使用してディレクトリの「正確な」コピーを作成する方法

Bashを使用して、タイムスタンプ、権限、および他のすべての属性を含むすべての属性をまったく同じに保ちながら、ディレクトリを別の場所にコピーするにはどうすればよいですか?

ベストアンサー1

あなたが探しているツールは、rsync多くのLinuxプラットフォームの標準です。適切なオプションを使用すると、すべての目的に合わせてソースディレクトリをターゲットディレクトリに1対1でコピーできます。

rsync -aHSAX -ih --progress /path/to/source_dir/ /path/to/target_dir

これにより、全体がコピーされます。コンテンツユーザー、権限、タイムスタンプ、ACL、および拡張属性(最後の2つを思い出してくれた@K-att-に感謝します)を維持し、シンボリックリンクをシンボリックリンクにコピーしますsource_dirtarget_dirコピー先のファイルシステムは、ソースのファイルシステムと同じ属性をサポートする必要があります。それ以外の場合は、エラーメッセージが表示されます。

含まれているディレクトリもコピーするsource_dir(つまり、新しく作成されたディレクトリで終わる場合)、次のディレクトリを省略するtarget_dir/source_dir/必要があります。/source_dir/

cp別の方法は適切なオプションを使用することです。

cp -r --preserve=all /path/to/source_dir /path/to/target_dir

サポートされているすべての属性(所有者、権限、タイムスタンプ、ACL、SELinuxコンテキスト、拡張属性)も繰り返しコピーして保存されます。

おすすめ記事