Bash
以遞歸方式對具有名稱的目錄執行命令
我在 AIX 中有以下目錄結構。
codeRepo/REPO1/AREA1/objects codeRepo/REPO1/AREA2/SUBAREA1/objects codeRepo/REPO1/AREA2/SUBAREA2/objects
從 codeRepo 我想在樹中的
chown myUser *
每個objects
目錄上執行。如您所見,有不同的對象目錄位於不同的位置。
如果您只想 chown 目錄(而不是子文件),請使用
find -exec
,如下所示:find -type d -name objects -exec chown myUser {} \;
經歷這個:
-type d
只選擇目錄-name objects
只查找完全命名為“對象”的目錄為 找到的每個路徑-exec chown myUser {} \;
執行chown myUser {}
(用路徑替換 {})如果您還想同時
chown
包含裡面的所有文件,只需替換chown
為chown -R
.
您幾乎回答了自己的問題..答案是使用遞歸選項 -R
執行命令sudo chown -R richie codeRepo/(假設您的使用者名是richie)
這將遞歸地將每個文件/文件夾設置為您作為所有者,但這樣做;在樹下越遠越好,這更像是一種大錘方法。