find命令用于在指定目錄下查找文件。
無
-name :后跟需要匹配的文件名模式,需要使用引號引起來
下面是一些簡單的示例查找:(~表示$HOME目錄)
1.查找當前$HOME下'.log'結尾的文件
find ~ –name "*.log" –print
2.當前目錄與子目錄下查找所有'.log'結尾的文件
find . –name "*.log" –print
3.當前目錄與子目錄下查找文件名以一個大寫字母開頭的文件
find . –name "[A-Z]" –print
4.在/etc目錄下查找文件名以host開頭的文件
find /etc –name "host*" –print
5.在當前目錄查找文件名以一個小寫字母開頭,最后是4到9加上.txt結束的文件
find . –name "[a-z]*[4-9].txt" –print
-iname :根據文件名查找文件,不區(qū)分大小寫
1.查找文件名為.log結尾的文件,不區(qū)分大小寫
find . –iname "*.log" –print
-perm :后跟文件權限,按文件權限模式來查找文件
1.查找當前目錄下文件權限為777的文件
find . –perm 777 –print
-prune :忽略某個目錄
1.希望在tmp下查找,但不希望在/tmp/tmp1下查找
find test –path "/tmp/tmp1" –prune –o –print
2.希望在tmp下查找,但不希望在/tmp/tmp1、/tmp/tm2、/tmp/tmp3等多個文件夾下查找
find test \(–path tmp/tmp1 –o –path tmp/tmp2 –o –path tmp/tmp2 \) –prune –o –print
-user與nouser :根據文件屬主查找與查找屬主賬戶已經被刪除的文件
1.查找文件屬主為qinys的所有文件
find ~ –user qinys –print
2.查找刪除用戶Tom的文件
find /home –nouser –print
-group與nogroup :根據文件屬于的用戶組查找與查找屬用戶組已經被刪除的文件
1.查找文件屬主為qinys的所有文件
find ~ –group gp1 –print
2.查找刪除用戶Tom的文件
find /home –nogroup –print
-mtime\atime\ctime :根據更改時間或者訪問時間等查找文件
1.在根目錄下查找更改時間在5日以內的文件
find / –mtime -5 –print
2.查找/home目錄下3日以前的文件
find / –mtime +3 –print
-newer :查找更改時間比某個文件新但另外一個文件舊的所有文件
語法:new_file_name ! old_file_name
其中!是邏輯非符號
1.查找更改時間比文件a.log新,但比文件b.log舊的文件(假如現在是在目錄/home下)
find –newer a.log ! -newer b.log
2.查找更改時間比tmp.log新的文件
find . –newer tmp.log
-size :根據文件大小來查找文件(這里的文件長度既可以使用塊來計量linux命令,也可以使用字節(jié)來計量)
1.查找當前目錄下文件長度大于1M字節(jié)的文件
find . –size +1000000c –print
2.在目錄/home下查找文件長度恰好為100字節(jié)的文件
find . –size 100c –print
3.在當前目錄下查找長度超過10塊的文件(一塊等于512字節(jié))
find . –size +10 –print
-type :查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
1.在目錄中查找更改時間在6日以前的文件并刪除他們(注:今天是20190109)
從上圖我們可以看出linux命令,符合查找的文件test.sh已經被刪除
2.在目錄中查找更改時間在1日以前后綴為.log的文件并刪除他們,刪除時候提示