日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux中常用的查找文件的命令

發(fā)布時(shí)間:2024/9/5 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux中常用的查找文件的命令 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? 我們經(jīng)常在linux要查找某個(gè)文件,但不知道放在哪里了,可以使用下面的一些命令來(lái)搜索。這些是從網(wǎng)上找到的資料(參考資料1),因?yàn)橛袝r(shí)很長(zhǎng)時(shí)間不會(huì)用到,當(dāng)要用的時(shí)候經(jīng)常弄混了,所以放到這里方便使用。?

  • which???????查看可執(zhí)行文件的位置?
  • whereis ? ?查看文件的位置?
  • locate ? ? ? 配合數(shù)據(jù)庫(kù)查看文件位置?
  • find ? ? ? ? ?實(shí)際搜尋硬盤(pán)查詢(xún)文件名稱(chēng)?(find也可以根據(jù)文件大小-size 時(shí)間-atime 正則表達(dá)式-regex)

1、which?

語(yǔ)法:??
[root?@redhat?~]# which 可執(zhí)行文件名稱(chēng)??
例如:??
[root?@redhat?~]# which passwd??
/usr/bin/passwd??
which是通過(guò)?PATH環(huán)境變量?到該路徑內(nèi)查找可執(zhí)行文件,所以基本的功能是尋找可執(zhí)行文件??

2、whereis?

語(yǔ)法:??
[root?@redhat?~]# whereis [-bmsu] 文件或者目錄名稱(chēng)??
參數(shù)說(shuō) 明:??
-b : 只找二進(jìn)制文件??
-m: 只找在說(shuō)明文件manual路徑下的文件??
-s : 只找source源文件??
-u : 沒(méi)有說(shuō)明文檔的文件??
例如:??
[root?@redhat?~]# whereis passwd??
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz??
將和passwd文件相關(guān)的文件都查找出來(lái)??

[root?@redhat?~]# whereis -b passwd??
passwd: /usr/bin/passwd /etc/passwd??
只將二進(jìn)制文件查找出來(lái)??

和find相比,whereis查找的速度非常快,這是因?yàn)閘inux系統(tǒng)會(huì)將系統(tǒng)內(nèi)的所有文件都記錄在一個(gè)?數(shù)據(jù)庫(kù)文件?(?參考資料1以及大多數(shù)文章中都是這樣描述的,whereis會(huì)在一個(gè)數(shù)據(jù)庫(kù)文件中查找,在參考資料2中找到這個(gè)數(shù)據(jù)庫(kù)文件目錄?/var/lib/slocate/slocate.db,我在服務(wù)器中并沒(méi)有找到這個(gè)目錄,原因應(yīng)該是我沒(méi)有裝locate命令,那么whereis到底是怎么查找的呢??找了很久沒(méi)有,從參考資料3中有一種個(gè)人比較相信的答案,從?/{bin,sbin,etc} ?/usr{lib,bin,old,new,local,games,include,etc,src,man,sbin,X386,TeX,g++-include}?
/usr/local/{X386,TeX,X11,include,lib,man,etc,bin,games,emacs}?中查找,也沒(méi)有去看whereis的源碼,如果有確定的可以交流一下?)中,當(dāng)使用whereis和下面即將介紹的locate時(shí),會(huì)從數(shù)據(jù)庫(kù)中查找數(shù)據(jù),而不是像find命令那樣,通過(guò)遍歷硬盤(pán)來(lái)查找,效率自然會(huì)很高。??
但是?該數(shù)據(jù)庫(kù)文件并不是實(shí)時(shí)更新,默認(rèn)情況下時(shí)一星期更新一次,因此,我們?cè)谟脀hereis和locate 查找文件時(shí),有時(shí)會(huì)找到已經(jīng)被刪除的數(shù)據(jù),或者剛剛建立文件,卻無(wú)法查找到,原因就是因?yàn)閿?shù)據(jù)庫(kù)文件沒(méi)有被更新。??

3、 locate??
語(yǔ)法:??
[root@redhat ~]# locate 文件或者目錄名稱(chēng)??
例 如:??
[root@redhat ~]# locate passwd??
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passwd.jsp??
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_admin_war/admin.war/jsp/platform/passwd.jsp??
/lib/security/pam_unix_passwd.so??
/lib/security/pam_passwdqc.so??
/usr/include/rpcsvc/yppasswd.x??
/usr/include/rpcsvc/yppasswd.h??
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph??
/usr/lib/kde3/kded_kpasswdserver.la??
/usr/lib/kde3/kded_kpasswdserver.so??
/usr/lib/ruby/1.8/webrick/httpauth/htpasswd.rb??
/usr/bin/vncpasswd??
/usr/bin/userpasswd??
/usr/bin/yppasswd??
…………??

4、 find??
語(yǔ)法:??
[root@redhat ~]# find 路徑 參數(shù)??
參 數(shù)說(shuō)明:??
時(shí)間查找參數(shù):??
-atime n :將n*24小時(shí)內(nèi)存取過(guò)的的文件列出來(lái)??
-ctime n :將n*24小時(shí)內(nèi)改變、新增的文件或者目錄列出來(lái)??
-mtime n :將n*24小時(shí)內(nèi)修改過(guò)的文件或者目錄列出來(lái)??
-newer file :把比f(wàn)ile還要新的文件列出來(lái)??
名稱(chēng)查找參數(shù):??
-gid n?????? :尋找群組ID為n的文件??
-group name? :尋找群組名稱(chēng)為name的文件??
-uid n?????? :尋找擁有者ID為n的文件??
-user name?? :尋找用戶(hù)者名稱(chēng)為name的文件??
-name file?? :尋找文件名為file的文件(可以使用通配符)??
例 如:??
[root@redhat ~]# find / -name zgz??
/home/zgz??
/home/zgz/zgz??
/home/weblogic/bea/user_projects/domains/zgz??
/home/oracle/product/10g/cfgtoollogs/dbca/zgz??
/home/oracle/product/10g/cfgtoollogs/emca/zgz??
/home/oracle/oradata/zgz??

[root@redhat ~]# find / -name '*zgz*'??
/home/zgz??
/home/zgz/zgz1??
/home/zgz/zgzdirzgz??
/home/zgz/zgz??
/home/zgz/zgzdir??
/home/weblogic/bea/user_projects/domains/zgz??
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00006??
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00002??
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00004??
/home/weblogic/bea/user_projects/domains/zgz/zgz.log??
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00008??
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00005??

當(dāng)我們用whereis和locate無(wú)法查找到我們需要的文件時(shí),可以使用find,但是find是在硬盤(pán)上遍歷查找,因此非常消耗硬盤(pán)的資源,而且效率也非常低,因此建議大家優(yōu)先使用whereis和locate。??
locate 是在數(shù)據(jù)庫(kù)里查找,數(shù)據(jù)庫(kù)大至每天更新一次。??
whereis 可以找到可執(zhí)行命令和man page??
find 就是根據(jù)條件查找文件。??

which 可以找到可執(zhí)行文件和別名(alias)?

參考資料:

1.?http://312788172.iteye.com/blog/730280

2. http://bbs.csdn.net/topics/320154707

3.?http://zhidao.baidu.com/question/122024300.html

?

?

?

?

?

?

這五個(gè)命令也可以參考下面的內(nèi)容:

?

linux中查找命令find、locate、whereis、which、type區(qū)別

1. find
www.2cto.com?
Java代碼?
find是最常見(jiàn)和最強(qiáng)大的查找命令,你可以用它找到任何你想找的文件。與查詢(xún)數(shù)據(jù)庫(kù)(/var/lib/locatedb)文件不同,find查找磁盤(pán)空間?

  find的使用格式如下:?

  $ find <指定目錄> <指定條件> <指定動(dòng)作>?

  - <指定目錄>: 所要搜索的目錄及其所有子目錄。默認(rèn)為當(dāng)前目錄。?

  - <指定條件>: 所要搜索的文件的特征。?

  - <指定動(dòng)作>: 對(duì)搜索結(jié)果進(jìn)行特定的處理。?
www.2cto.com?
  如果什么參數(shù)也不加,find默認(rèn)搜索當(dāng)前目錄及其子目錄,并且不過(guò)濾任何結(jié)果(也就是返回所有文件),將它們?nèi)硷@示在屏幕上。?

  find的使用實(shí)例:?

  $ find . -name 'my*'?

  搜索當(dāng)前目錄(含子目錄,以下同)中,所有文件名以my開(kāi)頭的文件。?

  $ find . -name 'my*' -ls?

  搜索當(dāng)前目錄中,所有文件名以my開(kāi)頭的文件,并顯示它們的詳細(xì)信息。?

  $ find . -type f -mmin -10?

  搜索當(dāng)前目錄中,所有過(guò)去10分鐘中更新過(guò)的普通文件。如果不加-type f參數(shù),則搜索普通文件+特殊文件+目錄。?

  2. locate
  
Java代碼?
locate命令其實(shí)是“find -name”的另一種寫(xiě)法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個(gè)數(shù)據(jù)庫(kù)(/var/lib/locatedb),這個(gè)數(shù)據(jù)庫(kù)中含有本地所有文件信息。Linux系統(tǒng)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù),并且每天自動(dòng)更新一次,所以使用locate命令查不到最新變動(dòng)過(guò)的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動(dòng)更新數(shù)據(jù)庫(kù)。?

  locate命令的使用實(shí)例:?

  $ locate /etc/sh?

  搜索etc目錄下所有以sh開(kāi)頭的文件。?

  $ locate ~/m?

  搜索用戶(hù)主目錄下,所有以m開(kāi)頭的文件。?

  $ locate -i ~/m?

  搜索用戶(hù)主目錄下,所有以m開(kāi)頭的文件,并且忽略大小寫(xiě)。?

  3. whereis
  
Java代碼?
whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說(shuō)明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。同locate一樣,查詢(xún)數(shù)據(jù)庫(kù)(/var/lib/locatedb)文件?

  whereis命令的使用實(shí)例:?

  $ whereis grep?

  4. which
  
Java代碼?
which命令的作用是,在PATH變量指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果。也就是說(shuō),使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。?

  which命令的使用實(shí)例:?

  $ which grep?

  5. type
  
Java代碼?
type命令其實(shí)不能算查找命令,它是用來(lái)區(qū)分某個(gè)命令到底是由shell自帶的,還是由shell外部的獨(dú)立二進(jìn)制文件提供的。如果一個(gè)命令是外部命令,那么使用-p參數(shù),會(huì)顯示該命令的路徑,相當(dāng)于which命令。?
www.2cto.com?
  type命令的使用實(shí)例:?

  $ type cd?

  系統(tǒng)會(huì)提示,cd是shell的自帶命令(build-in)。?

  $ type grep?

  系統(tǒng)會(huì)提示,grep是一個(gè)外部命令,并顯示該命令的路徑。?

  $ type -p grep?

  加上-p參數(shù)后,就相當(dāng)于which命令。

轉(zhuǎn)載于:https://www.cnblogs.com/xiohao/p/5509755.html

總結(jié)

以上是生活随笔為你收集整理的Linux中常用的查找文件的命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。