2018年8月8日 星期三

用find指令在Linux上列出舊的檔案 (刪除)


find /var/log/apache2 -mtime +30
上面這個指令的意思是在/var/log/apache2底下,-mtime是限定修改時間(單位是24小時),後面接著的數字的表示法如下:
  1. +n:表示比n單位以上的檔案 (例如:+30,代表30天之前)
  2. n:表示比n單位之內的檔案 (例如:-30,代表30天之內)
  3. n:不給給正負號代表正好n單位的檔案。
此外還有time跟min也都是代表修改時間,但是後面接的數字的單位變成分鐘。此外其他相關的指令如下:
  1. -mtime、-mmin:檔案內容(data)最後的修改(modify)時間
  2. -atime、-amin:檔案最後被存取(access)的時間
  3. -ctime、-cmin:檔案狀態(status)最後被修改的時間(change)。 (註:檔案狀態是指:修改擁有者或群組(即調用chown、chgrp)、修改檔案存取權限(即調用chmod)

2. find資料後執行刪除指令

find到檔案後可以用-exec指令來進行相應的處理,下面這個指令示範的是直接下rm指令刪除
find /var/log/apache2 -mtime +30 -exec rm -f {} ;
-exec是表示找到檔案後要執行的指令,現在要執行移除檔案的指令rm,但rm指令會與使用者確認是不是要刪除檔案,因為每個檔案都會問所以挺麻煩的所以加入-f (force) 參數讓rm強制移除檔案。然後 {} 則代表指令接檔案名稱的地方,find會將找到檔案的檔名與路徑帶入到{} 這邊。最後加入; 代表指令結束,不可以省略。

沒有留言:

張貼留言