updatedb.conf配置文件
此文件的作用是配置搜索條件户侥,locate、whereis屋摔、which搜索命令就是按照此配置文件搜索的替梨。
vi /etc/updatedb.conf //打開updatedb.conf配置文件
updatedb.conf配置文件的內(nèi)容:
//是否啟用此配置文件署尤,yes是生效亚侠,no是不生效
PRUNE_BIND_MOUNTS = "yes"
//不搜索這些文件系統(tǒng)
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpfs 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"
//不搜索包含這些關(guān)鍵字的文件
PRUNENAMES = ".git .hg .svn"
//這些目錄中的文件不搜索
PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
locate命令
locate [文件名]
locate并不是直接在系統(tǒng)中搜索,而是在/var/lib/mlocate下存有一個數(shù)據(jù)庫箕别,它是在這個數(shù)據(jù)庫中搜索的文件。
優(yōu)點(diǎn):搜索數(shù)據(jù)庫的好處就是它不需要遍歷整個系統(tǒng)串稀,所以搜索速度很快狮杨。
缺點(diǎn):mlocate數(shù)據(jù)庫并不是實(shí)時更新的他的更新頻率應(yīng)該是一天一更新,所以你新創(chuàng)建的文件橄教,用locate命令搜索不到,不過华烟,locate提供了一個更新mlocate數(shù)據(jù)庫的命令:
updatedb //更新mlocate數(shù)據(jù)
更新mlocate數(shù)據(jù)庫后就可以搜索到新創(chuàng)建的文件了持灰。
搜索命令的命令whereis、which
whereis:搜索命令所在路徑已經(jīng)幫助文件所在位置堤魁。
whereis [選項] [命令名]
選項:
-b:只查找可執(zhí)行文件
-m:只查找?guī)椭臋n
which:搜索命令所在路徑及別名。
which [命令名]
注:whereis椭微、which不能找到Linux里面shell的內(nèi)置命令涛漂,如cd检诗。
find命令
Linux里面功能最強(qiáng)大的文件搜索命令,支持使用通配符匹配逢慌。
find [搜索范圍] [搜索條件]
例如: find / -name install.log //搜索根目錄選的名字叫做install.log的文件
注:使用find的時候避免大范圍搜索,會非常耗費(fèi)系統(tǒng)資源
find搜索條件
-name //按照文件名搜索
舉例:find /root -name abc //查找root下面叫做abc的文件
-iname //不區(qū)分大小寫
舉例:同上
-user //按照所有者搜索
舉例:find /root -user root //查找root下所有者為root用戶的文件
-nouser //查找沒有所有者的文件
舉例:find /root -nouser //查找root下沒有所有者的文件
-mtime //文件修改時間 +10就是十天前 10第十天當(dāng)天 -10 十天內(nèi)
舉例:find /var/log -mtime -10 //查找var/log 下面在十天內(nèi)修改過的文件
atime //文件訪問時間
舉例:同-mtime
ctime //改變文件屬性
舉例:同-mtime
-size //安裝文件大小搜索 -25k是小于25k 25k是等于25k +25k是大于25k
舉例:
find . -size 13k //搜索當(dāng)前目錄下文件大小是13k的文件
-inum //按照i節(jié)點(diǎn)搜索
舉例:find . -inum 14866 //搜索當(dāng)前目錄下i節(jié)點(diǎn)是14866的文件
-a //and 邏輯與火架,兩個條件都滿足
舉例:find . -size +1k -a -size -4k //搜索當(dāng)前目錄下文件大小大于1k并且小于4k的文件
-o //or 邏輯或,兩個條件滿足一個即可
舉例:find . -size -3k -o -size +5k //搜索當(dāng)前目錄下文件大小小于3k或者大于5k的文件
-exec [命令] {} \; //對搜索結(jié)果執(zhí)行的操作
舉例:find . -size +2k -a -size -10k -exec ls -l {} \; //搜索當(dāng)前目錄下文件大小大于2k并且小于10k的文件纺弊,然后使用ls列出這些的內(nèi)容骡男,注只要使用了-exec 結(jié)尾就要加上{} \; 這是此命令的固定格式
舉例:find /root -name abd -exec rm -rf {} \; //查找root目錄下文件名稱是abd的文件然后刪除他
grep
grep是字符串搜索命令,在文件中匹配符合條件的字符串隔盛,它支持正則表達(dá)式匹配
grep [選項] 字符串 文件名
選項:
-i 忽略大小寫
-v 排除指定字符串
舉例:grep -i "size" anaconda-ks.cfg //在anaconda-ks.cfg文件里搜索包含size的內(nèi)容不區(qū)分大小寫
Linux 下可以使用的通配符:
注:find支持通配符匹配,grep支持正則表達(dá)式匹配
* 匹配任意字符
? 匹配任意一個字符
[] 匹配任意一個中括號內(nèi)的字符
舉例:
find /root -name "*" //搜索root目錄下所有內(nèi)容
find /root -name "ab[cd]" //搜索root目錄下名字叫做 abc 或者 abd的文件
find /root -name "?b" //搜索root目錄下名字只有兩個字符并且是b結(jié)尾的文件