如何复制文件夹的内容而不影响目标文件夹的权限?

如何复制文件夹的内容而不影响目标文件夹的权限?

我想将一个目录中的所有文件和文件夹复制到另一个目录没有更改目标目录的权限。

其中源文件夹是 555,目标文件夹是 775。如果我使用下面的命令,目标文件夹将更改为 555。我不想要这样。

cp -r /origin/. /destination

复制 /origin 内容的正确语法是什么?所以 /destination 仍然是 775

我没有须藤。

答案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是否存在名称以 开头的文件..(除了..其自身,它指定父目录)。

相关内容