Source From Here
Preface
在 Linux 平台下找檔案不外乎使用威力強大的 find 命令,威力強大的背後就是有一點點學習曲線,不過整體上來說還算簡單,因此想寫一篇文章留下備忘,讓自己日後可以快速查閱參考。
【 基本語法 】
查詢檔案名稱 ( 也可以查詢「目錄名稱」,其中 * 是萬用字元 )
註1: $HOME 是 Linux 下的一個環境變數,預設指向執行帳號的 HOME 目錄
查詢檔案名稱 (不區分大小寫)
指定只要搜尋「檔案」名稱
指定只要搜尋「目錄」名稱
補充說明: 可用的 –type 參數值如下
找尋所有檔案大小大於 50MB 的檔案
註1: 不加上 –name 參數即代表搜尋所有檔案
找尋所有檔案大小小於 50MB 的檔案
尋找超過 7 天沒有被存取或修改過的檔案 (判斷檔案存取時間)
尋找曾經在 7 天內被存取或修改過的檔案 (判斷檔案存取時間)
尋找超過 10 分鐘沒有被存取或修改過的檔案 (判斷檔案存取時間)
尋找曾經在 10 分鐘內被存取或修改過的檔案 (判斷檔案存取時間)
尋找檔案建立時間已超過 30 天的檔案
尋找特定使用者的檔案 ( 以帳號名稱 tom 為例 )
【 進階應用 】
刪除 30 天以上未經存取過的暫存檔案 ( 注意: 以下指令最後一個分號(;)前一定要加上反斜線 )
註1: 加上 –print 是為了讓被刪除的檔案檔名一併顯示在畫面上,這個參數可以省略
註2: 使用 –exec 會讓查詢到的每一個檔案路徑代入 ‘{}’ 位置,一個檔案會執行一遍 rm 命令
刪除 30 天以上未經存取過的暫存檔案 ( 使用 xargs 當成單一命令的參數 )
註1: 加上 –print0 是為了讓輸出的結果不以「斷行字元」分隔,而改以 null 為結果的分隔字元
註2: 使用 xargs 命令加上 –0 是為了讓傳入的資料以 null 字元當成參數的分隔
註3: 使用 rm 命令加上 –v 是為了能顯示出被刪除的檔案名稱,這個參數可以省略
註4: 使用 xargs 會將所有 find 命令查到的檔案轉換成 rm 的參數列,如果檔案過多可能會執行失敗!
註5: 使用 xargs 可確保後面的程式 ( rm ) 只執行一次,所以理論上執行速度較快!
相同參數需輸入多筆並且以「或」邏輯運算時要用 [color=violet]–o 參數串接起來[/color]
例1:同時找兩種檔名樣式的檔案
例2:同時找兩個擁有者的檔案
Preface
在 Linux 平台下找檔案不外乎使用威力強大的 find 命令,威力強大的背後就是有一點點學習曲線,不過整體上來說還算簡單,因此想寫一篇文章留下備忘,讓自己日後可以快速查閱參考。
【 基本語法 】
查詢檔案名稱 ( 也可以查詢「目錄名稱」,其中 * 是萬用字元 )
註1: $HOME 是 Linux 下的一個環境變數,預設指向執行帳號的 HOME 目錄
查詢檔案名稱 (不區分大小寫)
指定只要搜尋「檔案」名稱
指定只要搜尋「目錄」名稱
補充說明: 可用的 –type 參數值如下
- b block (buffered) special
- c character (unbuffered) special
- d directory ( 一般目錄 )
- p named pipe (FIFO)
- f regular file ( 一般檔案 )
- l symbolic link
- s socket
- D door (Solaris)
註1: 不加上 –name 參數即代表搜尋所有檔案
找尋所有檔案大小小於 50MB 的檔案
尋找超過 7 天沒有被存取或修改過的檔案 (判斷檔案存取時間)
尋找曾經在 7 天內被存取或修改過的檔案 (判斷檔案存取時間)
尋找超過 10 分鐘沒有被存取或修改過的檔案 (判斷檔案存取時間)
尋找曾經在 10 分鐘內被存取或修改過的檔案 (判斷檔案存取時間)
尋找檔案建立時間已超過 30 天的檔案
尋找特定使用者的檔案 ( 以帳號名稱 tom 為例 )
【 進階應用 】
刪除 30 天以上未經存取過的暫存檔案 ( 注意: 以下指令最後一個分號(;)前一定要加上反斜線 )
註1: 加上 –print 是為了讓被刪除的檔案檔名一併顯示在畫面上,這個參數可以省略
註2: 使用 –exec 會讓查詢到的每一個檔案路徑代入 ‘{}’ 位置,一個檔案會執行一遍 rm 命令
刪除 30 天以上未經存取過的暫存檔案 ( 使用 xargs 當成單一命令的參數 )
註1: 加上 –print0 是為了讓輸出的結果不以「斷行字元」分隔,而改以 null 為結果的分隔字元
註2: 使用 xargs 命令加上 –0 是為了讓傳入的資料以 null 字元當成參數的分隔
註3: 使用 rm 命令加上 –v 是為了能顯示出被刪除的檔案名稱,這個參數可以省略
註4: 使用 xargs 會將所有 find 命令查到的檔案轉換成 rm 的參數列,如果檔案過多可能會執行失敗!
註5: 使用 xargs 可確保後面的程式 ( rm ) 只執行一次,所以理論上執行速度較快!
相同參數需輸入多筆並且以「或」邏輯運算時要用 [color=violet]–o 參數串接起來[/color]
例1:同時找兩種檔名樣式的檔案
例2:同時找兩個擁有者的檔案
沒有留言:
張貼留言