歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> Linux常用命令(第二版)--文件搜索命令

Linux常用命令(第二版)--文件搜索命令

日期:2017/2/28 9:58:09   编辑:Linux命令

文件搜索命令

1、which /usr/bin/which #顯示系統命令所在目錄,絕對目錄,不能查找文件

格式:which [系統命令]

e.g. which ls

附-whereis:也可以查找到命令的絕對路徑

與whereis不同,which會列出這個命令的別名記錄,而whereis會顯示出這個命令的幫助文檔所在位置

2、find /usr/bin/find #查找文件或目錄,任何文件皆可,如圖片,壓縮包等

語法:find [搜索路徑] [搜索選項] filename

a) find /etc -name 文件名 #-name 最常見的選項

find /etc -name init // 在目錄/etc中查找文件init文件

注意:

1-盡量縮小查找范圍,不要在根目錄下查找,不然:1、查找速度非常慢;2、占用大量系統資源.

2-占用系統資源越少越好,而且盡量在服務器壓力較小時用find進行查找.

3-find .. -name 查找結果與Windows不同,如:Windows會把所有包含init關鍵詞的文件全都列出來而Linux則只會匹配init關鍵詞

4-使用通配符:

*:用於匹配任意字符

find /etc -name init* #查找所有以init開頭的文件

find /etc -name *init* #init左右都沒有空格,用於查找所有包含init關鍵詞的文件

?:用於匹配單個字符

find /etc -name init??? #這個文件會有七個字符。

find /etc -name ?init??

b)find /etc -size 文件大小

#他是以數據塊為單位的!512字節 = 0.5KB, 1K = 2Blocks

100M=?blocks

100M = 102400K = 102400*2blocks

E.g

find /etc -size +204800 #在/etc下查找大於80MB大於100MB的文件

find /etc -size -204800 #在/etc下查找大於80MB小於100MB的文件

find /etc -size 204800 #在/etc下查找等於100MB的文件,不常用!

c)find /etc -user username 查找屬於username的文件

find /home/xiaofang/Programme/Data_Structure/ -user xiaofang

d)通過時間值查找:

1、以天為單位: ctime,atime,mtime

2、以分鐘為單位: cmin,amin,mmin #更為常用

c-change 改變:表示文件的屬性被修改過,比如:所有者,所屬組,權限

a-access 訪問:文件被浏覽過

m-modify 修改:文件內容被修改過

-多長時間之內,+超過多少時間

E.g.

find /etc -mtime -1

find /etc -amin -60

find /home -cmin -120

e)find /etc -type 文件類型 #根據文件類型查找

f 二進制文件

l 軟鏈接文件

d 目錄

E.g.

find /etc -type f

find /etc -type l

f)-inum #根據i節點進行查找

E.g.

touch -- -abc #刪除:rm -- -abc

touch “a b” #刪除:rm “a b”

find . -inum 159341

find . -inum 159341 -exec rm -f {} \; #找到i節點為159341的文件,並刪除它

附-find連接符:

1、 -a:and 邏輯與

-o:or 邏輯或

E.g.

find /etc -size +163840 -a -size 204800 #查找>80M,<100M的文件

find /etc -name init* -a -type f #查找名為init並且為二進制的文件,並不包含目錄

2、find ….. -exec 命令 {} \; #固定格式,只能這樣來寫

{} :find的查詢結果

\ :轉義符-使得符號命令使用本身的含義

; :語句結束

e.g.

find /etc -name inittab -exec ls -l {} \;

#在/etc下查找inittab文件並顯示其詳細信息

find /home -user sax -exec rm -rf {} \;

#刪除用戶sax所有的文件

find /home -user sax -ok rm -rf {} \; #-ok連接符

#刪除用戶sax所有的文件,他會提示你是否確認

find /etc -name init* -ok rm -rf {} \;

3、locate[list file in databases]: /usr/bin/locate

說明:

#是Linux所特有的命令,尋找文件或目錄,最好用於快速定位系統命令,配置文件等

#雖然搜索速度很快,但有時候會找不到

#locate是在文件數據庫中查找的,所以速度會很快

#但是如果數據庫沒有包含這個文件的話,他就會找不到;

格式:locate [搜索關鍵字]

配合:updatedb [update a database for mlocate]: /usr/bin/updatedb

#建立整個系統目錄文件的數據庫

注意:其執行權限為:root!!!

4、grep: /bin/grep #在文件中搜尋字串匹配的行並輸出

格式: grep [指定字串] [源文件]

E.g. grep ftp /etc/services

附:grep功能特別強大,支持正則表達式,她的更加具體的介紹請參考我的另一篇博文:

《四天精通Shell編程(二)》

Copyright © Linux教程網 All Rights Reserved