2015-06-02 19 views
1

我在系列設置我的工作項目的權限:如何提高更改文件和文件夾權限的性能?

  • 755的所有目錄
  • 644,因爲我做的這一切文件

運行下一個命令:

$ find /path/to/project -type d -exec chmod 0755 {}; 

$ find /path/to/project -type f -exec chmod 0644 {}; 

它工作正常,但有點緩慢,特別是在虛擬機上。

難道我改善以任何其他方式執行此任務嗎?

回答

1

參考 - [https://superuser.com/questions/91935/how-to-chmod-all-directories-except-files-recursively][1]

這裏所消耗的時間1.Most會去加載文件模式過程中的每個條目。爲了避免使用xargs-

 find /path/to/project -type d -print0 | xargs -0 chmod 755 
    find /path/to/project -type f -print0 | xargs -0 chmod 644 

2.Fortunately,你可以選擇不使用find它可以使速度更快。在引用鏈接的第二個答案解釋瞭如何撰寫chmod命令爲您的需求

+0

謝謝!您的參考鏈接對我非常有用 –

1

你可以做

find /path/to/project -type d -exec chmod 0755 {} + 

這將組儘可能多的參數chmod越好。

此外,請考慮先使用chmod -R,然後再觸摸目錄。

+0

我假設'chmod -R'設置了* *(文件和目錄)而不是*文件/目錄*權限,因此它將錯誤地更改權限。最後'+'怎麼樣 - 這是個有趣的想法,謝謝! –

+0

我沒有說'chmod -R'。儘管如此,使用'chmod -R'完整掃描,然後使用'find -type d -exec chmod 755 {} +'完成掃描將會更快。 – sehe

+0

是的,你是對的,我不明白你的意思 –

1

您可以直接在命令chmod使用:

chmod -R a-x+X,u+rw,go+r-w /path/to/project 

其中a-x+X - 在一個目錄樹中刪除的所有文件的執行權限(即遞歸),同時允許目錄瀏覽。

將構建a-x+X刪除任何文件和目錄的所有執行位(-x)(a,IE用戶,組和其他),然後(+X)添加到所有目錄(和可執行文件爲好,但沒有由於之前的-x)存在這樣的文件)。 以類似的方式go+r-w添加讀取權限(+r),並將寫入權限(-w)移除到組別和其他人(go)。

+0

哇,這很酷,非常感謝!你能解釋一下「a-x + X」選項是什麼? –

+0

我找到解釋,再次感謝! –

+0

我已經添加了一些評論,以防他們對別人有用。 – davidedb