ターゲットフォルダの権限に影響を与えずにフォルダの内容をコピーする方法は?

ターゲットフォルダの権限に影響を与えずにフォルダの内容をコピーする方法は?

あるディレクトリのすべてのファイルとフォルダを別のディレクトリにコピーしたいと思います。いいえ宛先ディレクトリの権限を変更します。

ソースフォルダは555で、ターゲットフォルダは775です。以下のコマンドを使用すると、ターゲットフォルダが555に変更されます。私はこれをしたくありません。

cp -r /origin/. /destination

/originの内容をコピーする正しい構文は何ですか?したがって、/ detinationはまだ775です。

私はsudoを持っていません。

答え1

使用rsync:

rsync -rlD /origin/ /destination/

重要な部分は、/最後の部分origin/にrsyncにディレクトリ自体ではなくディレクトリの内容をコピーするように指示します。このように、/destination最上位ディレクトリはファイルの追加を除いてコピーおよび変更されません。

スイッチの説明:

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-g, --group                 preserve group
-o, --owner                 preserve owner (super-user only)
-D                          same as --devices --specials

--devices               preserve device files (super-user only)
--specials              preserve special files

答え2

ディレクトリ自体をコピーせずに、その中にあるファイルをコピーしてください。

cp -r /origin/* /destination

ドットファイル(名前が文字で始まるファイル)がある場合はスキップされてコピーされませ.ん。ポイントファイルのコピー*に使用され、名前が始まるファイルがある場合(自分以外には親ディレクトリを指定します)。cp -r /origin/.[!.]* /destinationcp -r /origin/..?* /destination....

関連情報