如何在不覆盖现有权限的情况下递归复制文件?


9

当我将文件从一个目录复制到另一个目录时,目录权限被重置(例如:从0755到0775),这会导致问题,迫使我返回并手动重置目录权限。我正在做cp -r /source/directory /destination/directory

我想复制所有文件和新目录,但不覆盖现有目录的权限。

Answers:


5

要保留链接,您可以将cp与cp一起使用)与-d标记一起使用--no-dereference --preserve=links

要将其与-p-R标志结合使用,可以使用archive标志-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)。

您可以随时将其更改为just,mode而不是all自己喜欢的名称,但我确实喜欢使用此别名来更改的默认设置cp

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.