Linux每周幾個(gè)命令(一)--查找篇

Linux每周幾個(gè)命令--查找篇

標(biāo)簽(空格分隔): linux


當(dāng)要查找某一個(gè)文件位置的時(shí)候,在linux下可以使用如下命令:

  1. which 查看可執(zhí)行文件位置
  2. whereis 查看文件位置
  3. locate 配合數(shù)據(jù)庫(kù)查找文件位置
  4. find 搜尋指定目錄下的文件位置

下面對(duì)其逐個(gè)分析:


1.which

which指令是在系統(tǒng)配置的Path環(huán)境變量中查找某一個(gè)命令的位置,并且返回第一個(gè)搜索結(jié)果.用該指令可以很輕松的查找到執(zhí)行的到底是哪一個(gè)位置的命令.

1.命令格式

which 文件名

2.命令作用

在系統(tǒng)PATH變量中查找,并返回第一個(gè)結(jié)果

3.使用示例
查找mysql命令位置(前提安裝了mysql)

[root@VM_105_120_centos ~]# which mysql
/usr/bin/mysql
[root@VM_105_120_centos ~]# 

查找java命令位置(前提安裝了Java)

[root@VM_105_120_centos ~]# which java
/usr/java/jdk1.8.0_102/bin/java
[root@VM_105_120_centos ~]# 

查找失敗時(shí),會(huì)打印出當(dāng)前PATH變量

[root@VM_105_120_centos ~]# which apache
/usr/bin/which: no apache in (/usr/java/jdk1.8.0_102/bin:/usr/java/jdk1.8.0_102/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_102/bin:/root/bin:/root/bin)
[root@VM_105_120_centos ~]# 

2.whereis

whereis的搜索是有限的幾種文件,但是其搜索速度很快,原因是李永樂(lè)linux的文件索引數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)在centos下每天更新一次,所以到時(shí)whereis可能會(huì)查找出來(lái)已刪除的文件,如果要實(shí)時(shí)查找,在執(zhí)行命令前先執(zhí)行updatedb,更新數(shù)據(jù)庫(kù)索引你.

1.命令格式

 whereis [選項(xiàng)] 文件

2.命令參數(shù)

 -b         只搜索二進(jìn)制文件
 -B <目錄>  定義二進(jìn)制文件查找路徑
 -m         只搜索 man 手冊(cè)
 -M <目錄>  定義 man 手冊(cè)查找路徑
 -s         只搜索源代碼
 -S <目錄>  定義源代碼查找路徑
 -f         終止 <目錄> 參數(shù)列表
 -u         搜索不常見記錄
 -l         輸出有效查找路徑

3.命令作用
whereis命令是定位可執(zhí)行文件膛檀、源代碼文件样眠、幫助文件在文件系統(tǒng)中的位置杀狡。這些文件的屬性應(yīng)屬于原始代碼抒抬,二進(jìn)制文件贤笆,或是幫助文件挤安。whereis 程序還具有搜索源代碼挡篓、指定備用搜索路徑和搜索不尋常項(xiàng)的能力捅暴。

4.使用示例
查找出mysql位置,和which相比查找出了全部位置

[root@VM_105_120_centos ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

只查找二進(jìn)制文件,也就是可執(zhí)行文件,結(jié)果過(guò)濾掉了gz壓縮文件

[root@VM_105_120_centos ~]# whereis -b mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql

3.locate

locate和whereis一樣都是通過(guò)數(shù)據(jù)庫(kù)查找,所以實(shí)時(shí)性會(huì)有問(wèn)題,不同的是locate是查找文件的全路徑,只要匹配就列出,而且支持正則表達(dá)式.

1.命令格式

locate [OPTION]... [PATTERN]...

2.命令參數(shù)

-i 忽略大小寫
-l 指定查找數(shù)量
-r 正則匹配查找
-c 統(tǒng)計(jì)出符合查找規(guī)則的數(shù)量

3.命令作用

快速定位符合要求的路徑位置.

4.使用示例
locate查找mysql

[root@VM_105_120_centos ~]# locate mysql
/etc/ld.so.conf.d/mysql-x86_64.conf
/etc/logrotate.d/mysql
/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
/etc/rc.d/init.d/mysqld
/etc/rc.d/rc0.d/K36mysqld
/etc/rc.d/rc1.d/K36mysqld
.......

locate統(tǒng)計(jì)出含有mysql字符的數(shù)量

[root@VM_105_120_centos ~]# locate -c mysql
649

locate查找mysql結(jié)尾的文件

[root@VM_105_120_centos ~]# locate -r mysql$
/etc/logrotate.d/mysql
/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/mysql
/var/lib/mysql
/var/lib/mysql/mysql

4.find

Linux find命令用來(lái)在指定目錄下查找文件恬砂。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí)蓬痒,不設(shè)置任何參數(shù)泻骤,則find命令將在當(dāng)前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進(jìn)行顯示梧奢。

1.命令格式

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ;

2.命令參數(shù)

-name 查找文件名匹配所給字串的所有文件狱掂,字串內(nèi)可用通配符 *、?粹断、[ ]
-gid n 查找屬于 ID 號(hào)為 n 的用戶組的所有文件符欠。
-uid n 查找屬于 ID 號(hào)為 n 的用戶的所有文件嫡霞。
-group 查找屬于用戶組名為所給字串的所有的文件瓶埋。
-user 查找屬于用戶名為所給字串的所有的文件。
-nouser 查找沒(méi)有屬主的文件或目錄
-nogoroup 查找沒(méi)有屬組的文件或目錄
-perm 權(quán)限 查找具有指定權(quán)限的文件和目錄诊沪,權(quán)限的表示可以如711养筒,644。
-size n[bckw]查找指定文件大小的文件端姚,n后面的字符表示單位晕粪,缺省為 b,代表 512字節(jié)的塊渐裸。
-type x 查找類型為 x 的文件巫湘,x 為下列字符之一:
    b 塊設(shè)備文件
    c 字符設(shè)備文件
    d 目錄文件
    p 命名管道(FIFO)
    f 普通文件
    l 符號(hào)鏈接文件(symbolic links)
    s socket 文件
以時(shí)間為條件查找
-amin n 查找 n 分鐘以前被訪問(wèn)過(guò)的所有文件。
-atime n 查找 n 天以前 24 小時(shí)內(nèi)被訪問(wèn)過(guò)的所有文件昏鹃。
-cmin n 查找 n 分鐘以前文件狀態(tài)被修改過(guò)的所有文件尚氛。
-ctime n 查找 n 天以前 24 小時(shí)內(nèi)文件狀態(tài)被修改過(guò)的所有文件。
-mmin n 查找 n 分鐘以前文件內(nèi)容被修改過(guò)的所有文件洞渤。
-mtime n 查找 n 天以前 24 小時(shí)內(nèi)文件內(nèi)容被修改過(guò)的所有文件阅嘶。
-print:將搜索結(jié)果輸出到標(biāo)準(zhǔn)輸出。

3.使用示例
在var目錄下查找mysql

[root@VM_105_120_centos ~]# find /var -name mysql 
/var/lib/mysql
/var/lib/mysql/mysql

查找usr目錄下mysql,并且類型為一般文件,最后列出詳細(xì)信息

[root@VM_105_120_centos ~]# find /usr -name mysql -type f  -exec ls -l {} \;
-rwxr-xr-x 1 root root 10416008 9月  29 01:42 /usr/bin/mysql

關(guān)于mtime這個(gè)以后會(huì)用的很多

find $PATH -mtime 0 查找距當(dāng)前時(shí)間 24 小時(shí)以內(nèi)修改的文件
find $PATH -mtime +n 查找距當(dāng)前時(shí)間 n 天以外修改的文件
find $PATH -mtime -n 查找距當(dāng)前時(shí)間 n 天以內(nèi)修改的文件
find $PATH -mtime n 查詢距當(dāng)前時(shí)間 n 天之前 24 小時(shí)以內(nèi)修改的文件

關(guān)于exec,這個(gè)常用來(lái)批量處理
find可以很好地定位到文件,但是往往我們定位到文件后還會(huì)繼續(xù)其他操作,那么exec用處就來(lái)了.舉個(gè)例子,查找tomcat的log文件,然后刪除.

[root@VM_105_120_centos ~]# find /root/apache-tomcat-8.5.6 -name *.log -exec rm {} \;

執(zhí)行后直接就刪除了,也沒(méi)提醒,這顯然不合適,換成-ok,這個(gè)屬于安全模式下的-exec

[root@VM_105_120_centos ~]# find /root/apache-tomcat-8.5.6 -name *.txt -ok rm {} \;
< rm ... /root/apache-tomcat-8.5.6/webapps/austoj/WEB-INF/view/robots.txt > ? y
< rm ... /root/apache-tomcat-8.5.6/logs/localhost_access_log.2016-12-07.txt > ? y
< rm ... /root/apache-tomcat-8.5.6/logs/localhost_access_log.2016-10-23.txt > ? n

再比如查詢48小時(shí)前更改過(guò)的文件,并刪除

[root@VM_105_120_centos ~]# find -atime 2 -ok rm {} \;
< rm ... ./apache-tomcat-8.5.6/logs/localhost_access_log.2017-01-27.txt > ? y
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末载迄,一起剝皮案震驚了整個(gè)濱河市讯柔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌护昧,老刑警劉巖魂迄,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異惋耙,居然都是意外死亡捣炬,警方通過(guò)查閱死者的電腦和手機(jī)慈格,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)遥金,“玉大人浴捆,你說(shuō)我怎么就攤上這事「逍担” “怎么了选泻?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)美莫。 經(jīng)常有香客問(wèn)我页眯,道長(zhǎng),這世上最難降的妖魔是什么厢呵? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任窝撵,我火速辦了婚禮,結(jié)果婚禮上襟铭,老公的妹妹穿的比我還像新娘碌奉。我一直安慰自己,他們只是感情好寒砖,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布赐劣。 她就那樣靜靜地躺著,像睡著了一般哩都。 火紅的嫁衣襯著肌膚如雪魁兼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天漠嵌,我揣著相機(jī)與錄音咐汞,去河邊找鬼。 笑死儒鹿,一個(gè)胖子當(dāng)著我的面吹牛化撕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挺身,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼侯谁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了章钾?” 一聲冷哼從身側(cè)響起墙贱,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贱傀,沒(méi)想到半個(gè)月后惨撇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡府寒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年魁衙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了报腔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剖淀,死狀恐怖纯蛾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纵隔,我是刑警寧澤翻诉,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站捌刮,受9級(jí)特大地震影響碰煌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绅作,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一芦圾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俄认,春花似錦个少、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)典尾。三九已至役拴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钾埂,已是汗流浹背河闰。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褥紫,地道東北人姜性。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像髓考,于是被迫代替她去往敵國(guó)和親部念。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容