既存の権限を上書きせずにファイルを再帰的にコピーするにはどうすればよいですか?


9

あるディレクトリから別のディレクトリにファイルをコピーすると、ディレクトリのアクセス許可がリセットされ(例:0755から0775に)、問題が発生し、戻ってディレクトリのアクセス許可を手動でリセットしなければならなくなります。私は現在やっていますcp -r /source/directory /destination/directory

すべてのファイルと新しいディレクトリをコピーしたいが、既存のディレクトリの権限を上書きしたくない。

回答:


5

リンクを保持するには、cpcpのマンページ)を-dフラグと一緒に使用できます--no-dereference --preserve=links。これはと同等です。

これを-pand -Rフラグと組み合わせるには、アーカイブフラグを使用できます-a


7

-pフラグを追加

cp -pR /source/dir /dest/dir

からman cp

-p     same as --preserve=mode,ownership,timestamps

2

~/.bashrcが含むように変更されました

alias cp='cp -i --preserve=all'

つまり、を使用するとcp、上書き(-i)の前にプロンプ​​トが表示され、すべて(つまり、モード、所有権、タイムスタンプ、および可能な場合は追加の属性(コンテキスト、リンク、xattr))が保持されます。

いつでもmode代わりに変更することもできallますが、このエイリアスを使用してのデフォルトを変更するのが好きですcp

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.