あるディレクトリのすべてのファイルとフォルダを別のディレクトリにコピーしたいと思います。いいえ宛先ディレクトリの権限を変更します。
ソースフォルダは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/.[!.]* /destination
cp -r /origin/..?* /destination
..
..