David's Blog

2012/05/11
by davidpai
4 Comments

[Linux] 只針對檔案或只針對目錄做遞迴chmod

以前只會這樣 chmod -R fubar/ 755 可是這樣會連帶目錄+檔案都變成775,這不是我要的啊~~ 我要目錄755檔案644這樣啊,難道我要一個一個去弄嗎,這樣超級蠢的說… 後來估狗了一下,果然很多人跟在下一樣有同樣的困擾,也同樣有很多大神提供了解決辦法,那就是神奇的find指令啦~~ 針對當前目錄下的所有目錄做遞迴chmod find ./ -type d -print0 | xargs -0 chmod 755 針對當前目錄下的所有檔案做遞迴chmod find ./ -type f -print0 | xargs -0 chmod 644 神奇的關鍵就是那個-type了,d表示目錄,f表示檔案,找出來之後用管線命令轉向給xargs指令去處理,xargs幫我們把標準輸出抓進來丟給chmod去執行,這樣就完成囉,喔耶~~(轉圈)(灑花)