宛先フォルダーの権限に影響を与えずにフォルダーの内容をコピーするにはどうすればよいですか?

宛先フォルダーの権限に影響を与えずにフォルダーの内容をコピーするにはどうすればよいですか?

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

元のフォルダーは 555 で、宛先フォルダーは 775 です。以下のコマンドを使用すると、宛先が 555 に変更されます。これは望ましくありません。

cp -r /origin/. /destination

/originの内容をコピーするための正しい構文は何ですか?/destinationが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/.[!.]* /destinationドット ファイルをコピーするには を使用し、cp -r /origin/..?* /destination名前が で始まるファイルがある場合は(親ディレクトリを指定する 自体..を除く) を使用します。..

関連情報