如何複製資料夾的內容而不影響目標資料夾的權限?

如何複製資料夾的內容而不影響目標資料夾的權限?

我想將一個目錄中的所有檔案和資料夾複製到另一個目錄沒有更改目標目錄的權限。

其中來源資料夾是 555,目標資料夾是 775。

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是否存在名稱開頭的文件..(除了..其本身,它指定父目錄)。

相關內容