Linux-find命令應用舉例-按時間篩選和刪除文件

find參數說明:

find有很多參數是以動作首字母+時間的方式用於按訪問、改變、更新時間來篩選文件。

動作表達:

  • a(last accessed) 最近一次訪問時間

  • c(last changed) 最近一次改變時間

  • m(last modified) 最近一次修改時間

注意此上的c和m的區別,c是change,包括文件的權限、文件名的更改都算,但是m,只有文件的本身的內容更改纔算修改。

時間單位的表達:

-min(minutes) 分鐘

-time 小時

-newer 文件最近一次操作(操作類型取決於前面的字母)晚於文件的修改時間

例子:

find /home -atime +10 -name "*.*"

#查找home目錄下10天內未訪問的文件

這裏的-name 參數匹配文件名,.表示匹配所有文件,atime的值+10,表示10天之前,若是-10表示10天之內,10(沒有加減號)表示10天。

執行刪除命令

上述操作用於查找文件,查到目標文件後刪除

-exec參數,如果查找有返回,可在exec參數後加上需要操作的命令,查找結果用{}來代替

查找10天內未被修改的文件並刪除命令:

find . -ctime +30 -name "." -exec rm -Rf {} \;

建立腳本

在home目錄下建立文件夾cshell,建立文件rm-old.sh

$mkdir ~/cshell

$vi ~/cshell/rm-old.sh

腳本內容:

#!/bin/bash

find . -atime +30 -name "." -exec rm -Rf {} \;

echo "current floder is :";

pwd;

echo "file is deleted."

存入環境變量,打開文件~/.bashrc,在最後一行添加:

export PATH=${PATH}:$HOME/cshell

使環境變量修改生效:

$source ~/.bashrc

在想刪除舊文件的地方執行即可:

$rm-old.sh

更多find命令使用舉例

1.查找沒有777權限的文件

find . -type f ! -perm 777

2.查找只讀文件

find . -perm /u=r

3.查找空目錄

find . -type d -empty    

4.查找某用戶的文件

find . -user cgz

END~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章