2015-01-26 46 views
1

我有一個目錄(我們將稱之爲/files),有~1300個子目錄,每個子目錄包含更多的子目錄和文件。Bash - 遞歸地改變屬於某個用戶/組的目錄的所有權

/files中頂級目錄的90%屬於apache:apache,其餘屬於root:root。我需要一切屬於apache:apache

我想,如果我在一大堆這將是相當極端的執行遞歸chown,所以我在想,如果有一個更有效的方式來改變遞歸只root:root目錄的所有權apache:apache

如果chmod可以以相同的方式在這些目錄上完成,則爲獎勵。

回答

0

你的遞歸CHOWN本來可能已經被完成,但你可以使用它代替:

find . -type d \(! -user apache -o ! -group apache \) -print0 | xargs -0 chown apache:apache 

要更改有錯誤的許可目錄:

find . -type d ! -perm 755 -print0 | xargs -0 chmod 755 
+0

chown是一種魅力,但chmod給了我'發現:無效謂詞''模式\''和'chmod:'755'後缺少操作數 – BadHorsie 2015-01-27 11:40:22

+0

@BadHorsie對不起,使用了錯誤的標誌,是'-perm'。更新了我的答案。 – 2015-01-27 17:02:31

相關問題