Linux 中高頻使用的 find 命令匯總

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í)行一次。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容