locate 搜索命令
搜索格式:locate 文件名
在后臺(tái)數(shù)據(jù)庫(kù)中按文件名稱進(jìn)行搜索,搜索速度快
第一次執(zhí)行此命令時(shí)可能會(huì)出現(xiàn):locate: can not stat () `/var/lib/mlocate/mlocate.db': 沒(méi)有那個(gè)文件或目錄
解決方法:首先執(zhí)行,updatedb,執(zhí)行完成后,locate命令即可正常執(zhí)行
舉例:locate install.log
新建的文件不能使用locate查找到,此時(shí)需更新數(shù)據(jù)庫(kù),才可以查看
更新數(shù)據(jù)庫(kù)命令:updatedb
切換到根目錄[root@localhost /]#
輸入 vi etc/updatedb.conf 即可打開(kāi)locate的搜索規(guī)則配置文件
當(dāng)值為yes時(shí),一下規(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"
不會(huì)查找以下文件夾中的文件
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):能看到命令的路徑蚂维,如果有別名,還能看到別名的說(shuō)明路狮。
whereis和which不能看到shell命令虫啥,只能看到外部安裝的命令。
$PATH說(shuō)明:類似于Windows中的環(huán)境變量奄妨,執(zhí)行命令的時(shí)候都要在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搜索(避免大范圍的搜索砸抛,會(huì)非常浪費(fèi)系統(tǒng)資源评雌,建議不在直接在“/”目錄下搜索)
格式:find 【搜索范圍】【搜索條件】;
例:find /home -name 文件名直焙;
注意:find搜索默認(rèn)是完全匹配景东。
如果需要進(jìn)行模糊查詢,需要添加通配符奔誓,通配符有以下3種
""匹配任意字符斤吐,例:find /home -name "test",顯示所有名字帶test的文件;或例:find /home -name "****",home目錄下的所有文件曲初,包括隱藏文件体谒。
“?”匹配任意一個(gè)字符,
“[]”匹配任意一個(gè)中括號(hào)內(nèi)的字符臼婆,例:find /home -name “test[12]”抒痒,顯示test1和test2文件;或find /home -name “[12]”颁褂,顯示以1和2開(kāi)頭的文件故响。
組合使用:例:find /home -name “*[12]”,顯示所有1和2結(jié)尾的文件
find 按文件時(shí)間來(lái)搜索
find /home -mtime +10 在home目錄下颁独,查找10天前修改的文件
find /home -mtime 10 在home目錄下彩届,查找10天前當(dāng)天修改的文件
find /home -mtime -10 在home目錄下,查找10天內(nèi)修改的文件
atime 文件訪問(wèn)時(shí)間
ctime 改變文件屬性
mtime 修改文件內(nèi)容
find搜索
find /root -iname test 不區(qū)分要搜索的test大小寫(xiě)格式
find /root -user root 搜索root目錄下的所有屬于root用戶的文件
find /root -nouser 沒(méi)有所屬者的文件誓酒,liunx中樟蠕,每個(gè)文件都有所屬者,如果沒(méi)有靠柑,那么一般都是垃圾文件寨辩,但還是有特例的,比如內(nèi)核產(chǎn)生的文件歼冰,就沒(méi)有所屬者靡狞,一般在proc和sys目錄下;還有外來(lái)文件隔嫡,也就是U盤(pán)拷入的文件也會(huì)忽略所有者甸怕。
find 目錄 -size 文件大小
注意:文件大小用小寫(xiě)k和大寫(xiě)M。
-a 表示and
-o 表示or
find /etc -size +20k -a -size -50k -exec ls -lh {} ;
-exec {} ; 固定格式腮恩,表示直接對(duì)前面的搜索結(jié)果進(jìn)行后面的命令處理
grep [選項(xiàng)] 字符串 文件名 (字符串使用 "" 包圍梢杭,結(jié)果為行記錄)
-i 忽略大小寫(xiě)
-v 排除指定字符串
find 命令與 grep 命令的區(qū)別
find:在 系統(tǒng) 中搜索符合條件的 文件名,使用 通配符(完全)匹配
grep:在 文件 當(dāng)中搜索符合條件的 字符串庆揪,使用 正則表達(dá)式 (包含)匹配