12 Linux文件搜索命令

locate 搜索命令

搜索格式:locate 文件名
在后臺數(shù)據(jù)庫中按文件名稱進(jìn)行搜索,搜索速度快

第一次執(zhí)行此命令時可能會出現(xiàn):locate: can not stat () `/var/lib/mlocate/mlocate.db': 沒有那個文件或目錄
解決方法:首先執(zhí)行,updatedb,執(zhí)行完成后,locate命令即可正常執(zhí)行

舉例:locate install.log

新建的文件不能使用locate查找到,此時需更新數(shù)據(jù)庫,才可以查看
更新數(shù)據(jù)庫命令:updatedb

切換到根目錄[root@localhost /]#
輸入 vi etc/updatedb.conf 即可打開locate的搜索規(guī)則配置文件

當(dāng)值為yes時,一下規(guī)則全部生效
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"

不會查找以下文件夾中的文件
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"

文件搜索命令:whereis

特點(diǎn):用于搜索命令所在的路徑以及幫助文檔所在的位置,不能搜索用戶自己創(chuàng)建的文件等信息。
選項(xiàng):
-b:只查找可執(zhí)行文件
-m:只查找?guī)椭募?/p>

文件搜索命令:which

特點(diǎn):能看到命令的路徑,如果有別名,還能看到別名的說明。
whereis和which不能看到shell命令,只能看到外部安裝的命令。

$PATH說明:類似于Windows中的環(huán)境變量,執(zhí)行命令的時候都要在path定義的目錄中去尋找。

path環(huán)境變量:定義的是系統(tǒng)搜索命令的路徑
[root@localhost~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
所以像ls這樣的命令就可以不用加路徑(/bin/ls)執(zhí)行了。

find搜索命令

find搜索(避免大范圍的搜索,會非常浪費(fèi)系統(tǒng)資源,建議不在直接在“/”目錄下搜索)
格式:find 【搜索范圍】【搜索條件】;
例:find /home -name 文件名;
注意:find搜索默認(rèn)是完全匹配。

如果需要進(jìn)行模糊查詢,需要添加通配符,通配符有以下3種
""匹配任意字符,例:find /home -name "test",顯示所有名字帶test的文件;或例:find /home -name "****",home目錄下的所有文件,包括隱藏文件。
“?”匹配任意一個字符,
“[]”匹配任意一個中括號內(nèi)的字符,例:find /home -name “test[12]”,顯示test1和test2文件;或find /home -name “[12]
”,顯示以1和2開頭的文件。
組合使用:例:find /home -name “
*[12]”,顯示所有1和2結(jié)尾的文件

find 按文件時間來搜索

find /home -mtime +10 在home目錄下,查找10天前修改的文件
find /home -mtime 10 在home目錄下,查找10天前當(dāng)天修改的文件
find /home -mtime -10 在home目錄下,查找10天內(nèi)修改的文件
atime 文件訪問時間
ctime 改變文件屬性
mtime 修改文件內(nèi)容

find搜索
find /root -iname test 不區(qū)分要搜索的test大小寫格式
find /root -user root 搜索root目錄下的所有屬于root用戶的文件
find /root -nouser 沒有所屬者的文件,liunx中,每個文件都有所屬者,如果沒有,那么一般都是垃圾文件,但還是有特例的,比如內(nèi)核產(chǎn)生的文件,就沒有所屬者,一般在proc和sys目錄下;還有外來文件,也就是U盤拷入的文件也會忽略所有者。

find 目錄 -size 文件大小
注意:文件大小用小寫k和大寫M。
-a 表示and
-o 表示or
find /etc -size +20k -a -size -50k -exec ls -lh {} ;
-exec {} ; 固定格式,表示直接對前面的搜索結(jié)果進(jìn)行后面的命令處理

grep [選項(xiàng)] 字符串 文件名 (字符串使用 "" 包圍,結(jié)果為行記錄)

-i 忽略大小寫
-v 排除指定字符串

find 命令與 grep 命令的區(qū)別

find:在 系統(tǒng) 中搜索符合條件的 文件名,使用 通配符(完全)匹配
grep:在 文件 當(dāng)中搜索符合條件的 字符串,使用 正則表達(dá)式 (包含)匹配

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

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

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