練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

[Linux]找出某個目錄底下的空目錄並刪除之 RSS feed
討論區首頁 » Linux
發表人 內容
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
最近發現網站的upload目錄底下出現一些空的目錄,原本檔案上傳的程式的邏輯是在檔案上傳時同時依年、月、日建立三層目錄(例如upload/2010/10/24),將檔案放在日期那一層。如果事後將該檔案刪除,就會留下一個空的日期目錄。

要將這些空目錄一個一個去找出來顯然不太聰明而且相當費時,我們可以簡單的利用 find 指令來找,有兩個參數可用,分別是 -depth 與 -empty。另外可以加上 -type d 讓它只找目錄,不加的話,它會會連空檔案都找出來。
find ~/www/upload -depth -empty -type d

確認沒問題後,配合 -exec 就可以將這些目錄全部刪掉了:
find ~/www/upload -depth -empty -type d -exec rmdir -v {} \;

最後,要正本清源還是得修改程式,將刪除檔案的功能補上檢查上層目錄是否為空並刪除該上層目錄的功能,如果不是每個月都有檔案上傳的話,可以考慮刪到月那一層的目錄。

參考資料:
http://people.debian.org.tw/~chihchun/2010/04/15/find-the-empty-dir/

分享經驗 累積智慧
[WWW]
 
討論區首頁 » Linux
前往:   
行動版