1. 前言
本文主要講解如何在Linux系統(tǒng)下使用命令行工具模糊查找文件,本文的工具包括find命令的用法也介紹grep命令的使用方法,同時(shí)也有find與grep兩者結(jié)合,能更精確根據(jù)條件查找文件。
2. 根據(jù)文件名模糊查找文件
例如:
在目錄/var/zcwyou里,找到.txt后綴的文件,文件名大小寫敏感。即只能匹配.txt后綴的
[root@zcwyou ~]# find /var/zcwyou -name '*.txt'
在目錄/var/zcwyou里,找到.txt后綴的文件,忽略大小定。即可以匹配.txt后綴,也可以匹配.Txt后綴,也可以匹配.TXT后綴的文件。
[root@zcwyou ~]# find /var/zcwyou -iname '*.txt'
3. 根據(jù)文件名和文件內(nèi)容模糊查找文件
使用方法:
結(jié)合find命令與xargs和grep -i ‘目標(biāo)匹配關(guān)鍵字'
案例1:
在當(dāng)前目錄搜索文件內(nèi)容含有某字符串(大小寫敏感)的文件:
語法:
find /etc/ -type f | xargs grep '目標(biāo)關(guān)鍵詞'
案例2:
在/etc/目錄下,查找?guī)cwyou關(guān)鍵詞的文件
[root@zcwyou ~]# find /etc/ -type f | xargs grep 'zcwyou'
可以找到以下文件和文件對(duì)應(yīng)的內(nèi)容:
/etc/group-:zcwyou:x:1000:
/etc/gshadow-:zcwyou:!!::
/etc/passwd-:zcwyou:x:1000:1000:zcwyou:/home/zcwyou:/bin/bash
/etc/group:zcwyou:x:1000:zcwyou
/etc/shadow-:zcwyou:
是不是非常高效?
案例3:
在當(dāng)前目錄搜索文件內(nèi)容含有某字符串(忽略大小寫)的特定文件:
借用find命令查找當(dāng)前目錄下所有以.c后綴結(jié)尾的文件和子目錄里以.c后綴結(jié)尾的文件,并把結(jié)果以參數(shù)形式傳遞給grep,由grep進(jìn)行搜索和過濾。
[root@zcwyou ~]#find . -type f -name ‘*.c' | xargs grep -i '目標(biāo)搜索關(guān)鍵詞'
4. 使用`find`命令模糊查找linux文件
在當(dāng)前目錄下,模糊查找在系統(tǒng)中最后10分鐘訪問的文件
[root@zcwyou ~]# find . -amin -10
在當(dāng)前目錄下,模糊查找在系統(tǒng)中最后48小時(shí)訪問的文件
[root@zcwyou ~]# find . -atime -2
在當(dāng)前目錄下,查找在系統(tǒng)中為空的文件或者文件夾
[root@zcwyou ~]# find . -empty
在當(dāng)前目錄下,查找在系統(tǒng)中屬于group cat的文件
[root@zcwyou ~]# find . -group cat
模糊查找在系統(tǒng)中最后5分鐘里修改過的文件
[root@zcwyou ~]# find . -mmin -5
查找在系統(tǒng)中最后24小時(shí)里修改過的文件
[root@zcwyou ~]# find . -mtime -1
5. 根據(jù)用戶屬性模糊查找Linux文件
查找在系統(tǒng)中屬于作廢用戶的文件
[root@zcwyou ~]# find . -nouser
查找在系統(tǒng)中屬于zcwyou這個(gè)用戶的文件
[root@zcwyou ~]# find . -user zcwyou
6. 通過文件大小模糊查找文件
查找根目錄下超過1M的文件,并打印
[root@zcwyou ~]# find / -size +1M -type f -print
查找當(dāng)前目錄下等于500字節(jié)的文件,包括子目錄,并打印結(jié)果
[root@zcwyou ~]# find -size 500c -print
查找home目錄下小于600k的文件
[root@zcwyou ~]# find /home -size -600k -print
7. 通過文件新舊查找文件
查找比old.txt新的文件
[root@zcwyou ~]# find -newer "old.txt" -type f -print
查找比newer.txt舊的文件
[root@zcwyou ~]# find ! -newer "newer.log" -type f -print
查找比old.txt新,比newer.txt舊的文件
[root@zcwyou ~]# find -newer 'old.txt' ! -newer 'newer.txt' -type f -print
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。