2013年10月22日 星期二

Linux遞迴刪除資料夾及其下所有子資料夾和檔案

早期我對Linux刪資料夾的印象是使用rmdir這個指令,刪檔案才是使用rm指令,

(大概是受到以前玩mud的經驗所影響)

但刪資料夾時是必須在該資料夾下完全沒有任何子資料夾或檔案時才能執行,

所以必須先一層一層的把要刪除的資料夾下的檔案和子資料夾全部手動砍光,

最後才能rmdir我要刪除的資料夾。


直到真正開始接觸Linux之後才發現原來事情沒有憨人想的這麼困難,

原來rm這個指令除了刪檔案之外,也能刪資料夾,

更棒的是,rm還提供了遞迴刪除的參數可以設定,

讓我們來看看說明是怎麼寫的:


-i                    prompt before every removal
-I                    prompt once before removing more than three
                      files, or when removing recursively.  Less
                      intrusive than -i, while still giving
                      protection against most mistakes
-r, -R, --recursive   remove directories and their contents
                      recursively


以上文字節錄自8.13版rm --help內容

由此可知,要遞迴刪除資料夾其下的所有項目,只要加個 -r 參數就好,

但是執行後會發現,假如資料夾下有一百個檔案,

rm掃到每一個檔案都會問一次是否要刪除,然後就要一直回答他y y y y y....很煩啊!

因此可以配合另一個參數 -I ,

這個參數幫助我們在刪除多個檔案時只要詢問一次是否確定就好,

因此兩個參數加起來指令就是

rm -rI 資料夾路徑

執行後,享受他帶來的便利性與爽度吧!

沒有留言:

張貼留言