CentOS下如何搜尋檔案或目錄命令

搜尋檔案或目錄:
檔案的搜尋可就厲害了!因?yàn)槲覀兂3P枰滥莻€(gè)檔案放在哪里,所以來談一談怎么搜尋吧!在 Linux 底下也有相當(dāng)優(yōu)異的
搜尋系統(tǒng)呦!通常 find 不很常用的!因?yàn)樗俣嚷?,也很操硬盤!通常我們都是先使用 whereis 或者是 locate 來檢查,如果
真的找不到了,才以 find 來搜尋呦!為什么呢?因?yàn)?whereis 與 locate 是利用數(shù)據(jù)庫來搜尋數(shù)據(jù),所以相當(dāng)?shù)目焖伲也]
有實(shí)際的搜尋硬盤,比較省時(shí)間啦!
which 查看可執(zhí)行檔案的位置
whereis 查看檔案的位置
locate 配合數(shù)據(jù)庫查看檔案位置
find 實(shí)際搜尋硬盤去查詢文件名稱
• which
語法:
[root @test /root ]# which [文件名稱]
參數(shù)說明:
范例:
[root @test /root]# which passwd
/usr/bin/passwd
說明: which 的基本功能是『藉由 PATH 這個(gè)環(huán)境變量的內(nèi)容,去該路徑內(nèi)尋找可執(zhí)行文件』,所以基本的功能在于『尋找
執(zhí)行檔』啰!
• whereis
語法:
[root @test /root ]# whereis [-bmsu] [目錄名稱]
參數(shù)說明:
-b :只找 binary 的檔案
-m :只找在說明文件 manual 路徑下的檔案
-s :只找 source 來源檔案
-u :沒有說明檔的檔案!
范例:
[root @test /root]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.bz2
將 passwd 相關(guān)字眼的檔案或目錄都列出來!
[root @test /root]# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
僅列出binary 檔案!
[root @test /root]# whereis -m passwd
passwd: /usr/share/man/man1/passwd.1.bz2
僅搜尋 man page 所在的目錄!
說明:
如果使用 find 太麻煩,而且時(shí)間花用的很大?。ㄒ?yàn)槿绻愕挠脖P比較老舊的話,嘿嘿!有的等的?。┻@個(gè)時(shí)候
whereis 就相當(dāng)?shù)暮糜昧耍×硗猓?whereis 可以加入?yún)?shù)來找尋相關(guān)的資料,例如如果你是要找可執(zhí)行檔( binary )
那么加上 -b 就可以啦!例如上面的范例針對 passwd 這支程序來說明!如果不加任何參數(shù)的話,那么就將所有的數(shù)
據(jù)列出來啰!那么 whereis 到底是使用什么咚咚呢?為何搜尋的速度會(huì)比 find 快這么多?!其實(shí)那也沒有什么!這是
因?yàn)?Linux 系統(tǒng)會(huì)將系統(tǒng)內(nèi)的所有檔案都記錄在一個(gè)數(shù)據(jù)庫檔案里面,而當(dāng)使用 whereis 或者是底下要說的 locate 時(shí),
都會(huì)以此數(shù)據(jù)庫檔案的內(nèi)容為準(zhǔn),因此,有的時(shí)后你還會(huì)發(fā)現(xiàn)使用這兩個(gè)執(zhí)行檔時(shí),會(huì)找到已經(jīng)被殺掉的檔案!這就
是因?yàn)樗且粋€(gè)『數(shù)據(jù)庫』檔案呀!另外,基本上 Linux 每天會(huì)針對 Linux 主機(jī)進(jìn)行 updatedb (就是那一個(gè)數(shù)據(jù)庫
檔案啰?。┑膭?dòng)作,你可以在 /etc/cron.weekly/slocate.cron 這個(gè)檔案找到相關(guān)的機(jī)制呦!當(dāng)然,也可以直接使用
/usr/bin/updatedb 來更新數(shù)據(jù)庫檔案呢!
• locate
語法:
[root @test /root ]# locate [目錄名稱]
參數(shù)說明:
范例:
[root @test /root]# locate root
……一大堆跟 root 有關(guān)字眼的檔案都出來了 @_@
[root @test /root]# updatedb <==立刻更新數(shù)據(jù)庫
說明:
locate 的使用方式就更簡單了!直接鍵入你要找的檔名即可!但是,這個(gè)東西還是有使用上的限制呦!為什么呢?您
會(huì)發(fā)現(xiàn)使用 locate 來尋找數(shù)據(jù)的時(shí)候特別的快,這是因?yàn)?locate 尋找的數(shù)據(jù)是由『已建立的數(shù)據(jù)庫 /var/lib/slocate』
里面的數(shù)據(jù)所搜尋到的,所以不用直接在去硬盤當(dāng)中存取數(shù)據(jù),呵呵!當(dāng)然是很快速啰!那么有什么限制呢?就是因
為他是經(jīng) 由數(shù)據(jù)庫來搜尋的,而數(shù)據(jù)庫的建立預(yù)設(shè)是在每個(gè)禮拜執(zhí)行一次,所以當(dāng)您新建立起來的檔案,卻還在數(shù)
據(jù)庫更新之前搜尋該檔案,那么 locate 會(huì)告訴您『找不到!』呵呵!因?yàn)楸仨氁聰?shù)據(jù)庫呀!
那么我到底要建立哪些數(shù)據(jù)庫呢?是否全部都要建立?似乎不需要,這個(gè)時(shí)候,你可以自己選擇需要建立檔案數(shù)據(jù)庫
的目錄呢!在 /etc/updatedb.conf 這個(gè)內(nèi)即可設(shè)定了!
[root @test root]# more /etc/updatedb.conf
## Linux-Mandrake configuration.
# 由何處開始查詢數(shù)據(jù),當(dāng)然是由根目錄啦!所以填入 / 即可
FROM="/"
# 哪些目錄不想要建立檔案搜尋數(shù)據(jù),呵呵!就是那些不要的數(shù)據(jù)嘛!
# 忘記的話,記得回上一章去看看內(nèi)容,就知道為何如此設(shè)定了!
PRUNEPATHS="/proc,/tmp,/var/tmp,/usr/tmp,/net,/afs,/mnt"
# 安全等級
# 0 代表關(guān)閉安全檢驗(yàn),速度上面較快速,但較不安全;
# 1 啟動(dòng)安全簡易,這是系統(tǒng)的默認(rèn)值; SECURITY="1"
# 查詢的時(shí)候是否要由屏幕輸出?當(dāng)然不要,否則多麻煩?
VERBOSE="NO"
# 數(shù)據(jù)庫所在處!這是默認(rèn)值,不要隨意移動(dòng),否則會(huì)找不到!
DATABASE="/var/lib/slocate/slocate.db"
# 哪些檔案系統(tǒng)我們也不搜尋建立?就是光盤啦、非 Linux 的檔案格式啦,
# 我們都不要進(jìn)行搜尋信息的建立啦!
PRUNEFS="nfs,smbfs,ncpfs,proc,devpts,supermount,vfat,iso9660,udf,usbdevfs,devfs"
• find
語法:
[root @test /root ]# find [路徑] [參數(shù)]
參數(shù)說明:
1. 時(shí)間:
-atime n :在 n*24 小時(shí)內(nèi)被 access 即存取過的檔案列出來!
-ctime n :在 n*24 小時(shí)內(nèi)被 changed 即改變、新增的檔案或目錄印出
-mtime n :在 n*24 小時(shí)內(nèi)被 modified 即修改過的檔案印出
-newer file :比 file 還要新的檔案就列出來!
2. 使用名稱:
-gid n :尋找 群組 ID 為 n 的檔案
-group name :尋找群組名稱為 name 的檔案
-uid n :尋找擁有者 ID 為 n 的檔案
-user name :尋找使用者名稱為 name 的檔案
-name file :尋找檔名為 file 的文件名稱(可以使用萬用字符)
-type type :尋找檔案屬性為 type 的檔案,type 包含了 b, c, d, p, l, s,
這些與前一章的屬性相同!例如 l 為 Link 而 d 為路徑之意!
范例:
[root @test /root]# find / -name testing <==尋找檔名為 testing
[root @test /root]# find / -name 'test*' <==尋找檔名包含 test 的!
[root @test /root]# find . -ctime 1 <==尋找目前目錄下一天內(nèi)新增的目錄或檔案
[root @test /root]# find /home/test -newer .bashrc <==尋找 /home/test 目錄下比 .bashrc 還要新的檔案
[root @test /root]# find /home -user test <==尋找 /home 底下?lián)碛姓邽?test 的檔案
[root @test /root]# find /dev -type b <==尋找 /dev 這個(gè)目錄下,檔案屬性為 b 的檔案
說明:
如果你要尋找一個(gè)檔案的話,那么使用 find 會(huì)是一個(gè)不錯(cuò)的主意!他可以根據(jù)不同的參數(shù)來給予檔案的搜尋功能!
例如你要尋找一個(gè)檔名為 httpd.conf 的檔案,你知道他應(yīng)該是在 /etc 底下,那么就可以使用『 find /etc -name
httpd.conf 』嚕!那如果你記得有一個(gè)檔案檔名包含了 httpd ,但是不知道全名怎辦?!呵呵,就用萬用字符 * 吧,
如上以:『 find /etc -name '*httpd*' 』就可將檔名含有 httpd 的檔案都列出來啰!不過,由于 find 在尋找數(shù)據(jù)的時(shí)
后相當(dāng)?shù)暮挠脖P!所以沒事情不要使用 find 啦!有更棒的指令可以取代呦!那就是 whereis 與 locate 啰??!
相關(guān)文章
Centos下如何拷貝整個(gè)目錄命令?Centos下拷貝目錄命令的方法
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,就如同DOS下的copy命令一樣,功能非常強(qiáng)大。今天小編為大家詳細(xì)的講解Centos下拷貝目錄命令的方法;有需要的朋2016-12-19- 一些朋友不知道CentOS系統(tǒng)里如何提高文本搜索效率?下面小編就為大家?guī)鞢entOS系統(tǒng)里提高文本搜索效率的方法,有需要的朋友可以過來看看2016-12-15
- 今天小編就為大家?guī)鞢entos文件搜索命令的講解;希望對大家的學(xué)習(xí)會(huì)有幫助;有需要的朋友可以過來看看2016-12-09
CentOS下chattr(設(shè)定檔案隱藏屬性)命令講解
今天小編為大家?guī)淼氖荂entOS下chattr(設(shè)定檔案隱藏屬性)命令講解;希望可以幫助到大家,有需要的朋友一起去看看吧2016-12-23- ethtool 是用于查詢及設(shè)置網(wǎng)卡參數(shù)的命令。 今天小編為大家?guī)Я说氖荂entOS下ethtool命令詳解,希望對大家會(huì)有幫助,有需要的朋友一起去看看吧2016-12-26
- 很多朋友不知道CentOS下如何找出大文件命令?今天小編將為大家?guī)鞢entOS下找出大文件命令的方法,希望可以幫助到大家,有需要的朋友一起去看看吧2016-12-26
CentOS如何查看當(dāng)前系統(tǒng)下的gcc版本命令?
Linux系統(tǒng)下的Gcc是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,是GNU的代表作品之一。今天小編為大家?guī)淼氖荂entOS查看當(dāng)前系統(tǒng)下的gcc版本命令的方法,有需要的朋友一2016-12-25- 今天小編為大家?guī)淼氖荂entOS查看各種服務(wù)信息命令詳解;希望可以幫助到大家,有需要的朋友一起去看看吧2016-12-23
- 今天小編為大家?guī)淼氖荂entOS進(jìn)程資源占用高原因分析命令詳解,希望對大家會(huì)有幫助,有需要的朋友一起去看看2016-12-22
- 很多朋友還不了解CentOS如何查看與用戶相關(guān)文件命令?今天小編將為大家?guī)鞢entOS查看與用戶相關(guān)文件命令的方法詳解,希望可以幫助到大家,有需要的朋友一起去看看吧2016-12-21