Unix

複製文件權限,但不複製 Unix 中的文件

  • April 23, 2015

(來自:https ://stackoverflow.com/questions/15245144/copy-file-permissions-but-not-files ,因離題而關閉)

我有同一個目錄樹的兩個副本。它們在兩者中幾乎都有相同的文件(一個版本可能有幾個額外或失去的文件)。但是,大多數文件對於兩個目錄都是通用的(具有相同的相對路徑和所有內容)。

假設這些在目錄中:

version1/
version2/

問題是 version1/ 中的權限搞砸了,我想複製 version2/ 中的權限,但不要替換 version1/ 中較新的文件。

是否有通過 shell 命令或腳本自動執行此操作的方法?

GNU cp自coreutils 8.6--attributes-only起就知道這個標誌

–attributes-only 不復製文件數據,只複製屬性

我的版本cp沒有--attributes-only標誌,所以我做了這個。在簡單文件夾 YMMV 上進行了簡要測試。

$> ls
version1/
version2/
$> ls -l version1/1/a
-rw-rw-r-- 1 alex alex 0 Feb  5 12:49 version1/1/a
$> ls -l version2/1/a
-rwxrwxrwx 1 alex alex 0 Feb  5 12:49 version1/1/a

$> find version1 -type f -printf '%P\n' | xargs -I {} \
   chmod --reference=version1/{} version2/{}

$> ls -l version2/1/a
-rw-rw-r-- 1 alex alex 0 Feb  5 12:49 version1/1/a

引用自:https://serverfault.com/questions/665237