1、通過(guò)擴(kuò)展名查找文件
find . -name ".txt"
find / -name ".log"
2、按文件名查找
find / -name error.log
find / -name nginx.conf
3、按所屬組所有者查找文件
查找~目錄下所屬組為rumenz的文件
find ~ -group rumenz -print
查找~目錄下所屬者為rumenz的文件
find ~ -user rumenz -print
查找屬主賬戶已經(jīng)被刪除的文件,查找在/etc/passwd不存在的賬戶
find /home -nouser -print
4、按權(quán)限查找文件
find . -perm 755 -print
查找當(dāng)前目錄下755權(quán)限的文件
5、按類型查找文件
find . -type d -print #查找當(dāng)前目錄下的所有目錄
find . ! -type d -print #查找當(dāng)前目錄下除了目錄的其他所有類型文件
6、按修改日期查找文件
find . -mtime -3 -print #查找更改時(shí)間在3天之內(nèi)的文件
find . -mtime -2 -print #查找更改時(shí)間在2天之前的文件
7、按大小查找文件
find . -size 100c -print #查找當(dāng)前目錄下文件長(zhǎng)度為100字節(jié)的文件
find . -size +10 -print #查找當(dāng)前目錄下超過(guò)10塊的文件(1塊=512字節(jié))
find / -size +100M #查找系統(tǒng)中文件大小超過(guò)100M的文件
8、排除某個(gè)目錄
查找在/rumenz目錄下除了src目錄的其他文件
find /rumenz -path "/rumenz/src" -prune -o -print
查找在/rumenz目錄下除了src目錄的txt文件
find /rumenz -path "/rumenz/src" -prune -o -name "*.txt" -print
9、目錄與文件查找順序
find /rumenz -depth -print
有dept:先處理目錄下的子內(nèi)容,再處理目錄本身
無(wú)dept:先處理目錄本身,然后處理目錄下的子內(nèi)容
10、正則查找
查找當(dāng)前目錄及子目錄中查找文件名以大寫字母開(kāi)頭的文件
find . -name "[A-Z]*" -print
查找某個(gè)文件夾下面的哪些具體文件包含某一個(gè)字段
find . | xargs grep "YZS"
11、查找并對(duì)結(jié)果做相關(guān)操作
找到為文件類型為軟連接的文件 find . -type l -exec ls -l {} ;
找到后刪除 find . -name "*.txt" -print0 | xargs -0 rm -rf
找到后拷貝 find / -path '/etc/ssl/certs' -prune -o -name *.pem | xargs -i cp {} ./pem
文件分類 find . -type f -print | xargs file
12、匹配多個(gè)文件
find . ( -name ".txt" -o -name ".pdf" )
-o 為 or的意思
13、find排除某個(gè)目錄
find 查找路徑 -path排除目錄路徑
find . -path './home' -prune -o -name *.log
find后面的第一個(gè)英文點(diǎn)號(hào).表示當(dāng)前根路徑,-path ./home表示匹配路徑為./home的文件夾,-prune表示把前面命令所匹配到的路徑排除,不再進(jìn)入該路徑下面繼續(xù)查找,-o表示或,-name表示查找log后綴的文件,-print表示打印查找結(jié)果到命令行終端。
14、 locate 命令
locate命令用于查找符合條件的文檔,他會(huì)去保存文檔和目錄名稱的數(shù)據(jù)庫(kù)內(nèi),查找合乎范本樣式條件的文檔或目錄。
一般情況我們只需要輸入 locate $<file_name> 即可查找指定文件
語(yǔ)法 : locate [-d ][--help][--version][范本樣式...]
locate 與 find 不同: find 是去硬盤找,locate 只在 /var/lib/slocate 資料庫(kù)中找。
locate 的速度比 find 快,它并不是真的查找,而是查數(shù)據(jù)庫(kù),一般文件數(shù)據(jù)庫(kù)在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是實(shí)時(shí)的,而是以數(shù)據(jù)庫(kù)的更新為準(zhǔn),一般是系統(tǒng)自己維護(hù),也可以手工升級(jí)數(shù)據(jù)庫(kù) ,命令為:
updatedb
默認(rèn)情況下 updatedb 每天執(zhí)行一次。