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á)式 (包含)匹配