
我想將一個目錄中的所有檔案和資料夾複製到另一個目錄沒有更改目標目錄的權限。
其中來源資料夾是 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
是否存在名稱開頭的文件..
(除了..
其本身,它指定父目錄)。