1. 程式人生 > >一:檔案和目錄篇(5)——搜尋檔案

一:檔案和目錄篇(5)——搜尋檔案

動作 roo 速度 ket 有關 -name comm 找不到 ont

1.搜尋執行檔——which

which指令主要是在PATH所包含的目錄中去搜尋執行檔的檔名,若加上-a參數就可以搜尋除所有包含檔案的信息

技術分享圖片

上面列出root賬號的PATH包含的目錄,which命令會在這些目錄中去查看文件

如果文件不在這些目錄中就會提示找不到,如下

技術分享圖片

cd檔案用which找不到,因為cd不在PATH所包含的目錄中,它是屬於bash內建的命令。

2.whereis

whereis和locate是在數據庫中查找檔案的,所以查找的速度很快

技術分享圖片

3.locate

選項與參數

  -i:忽略大小寫的差異

  -r:後面可直接更正則表達法的顯示方式

技術分享圖片

locate命令會在執行的時候去讀取/var/lib/mlocate中建立的數據庫而不會去查詢磁盤,所以搜尋速度很快

但是有時當你新建一個檔案時,用locate搜尋時提示找不到是因為數據庫還沒有更新,手動使用updatedb命令就可以更新數據庫

4.find

find命令算是功能很強大的搜尋檔案指令了,它是在整個磁盤中查找文件,它有幾種參數選項,分別介紹如下

1.與時間相關的選項— -atime, -ctime ,-mtime, 以-mtime介紹

  -mtime n:在n天之前的(一天24小時內)被更改過內容的檔案

  -mtime +n:在n天之前的(不含n天本身)被更改過內容的檔案

  -mtime -n:在n天之內(含n天本身)被更改過內容的檔案

  -newer file:列出比file還要新的檔案

這個選項主要是找出最近做出變動的檔案,非常方便

比如列出一天前24小時內容變動的檔案

技術分享圖片

列出比/home/test更新的檔案

技術分享圖片

2.與使用者和組名有關的選項:

  -uid n:找出uid為n的檔案

  -gid n:找出gid為n的檔案

  -user name:找出使用者為name的檔案

  -group name:找出群組為name的檔案

  -nouser :找出不存在擁有者的檔案

  -nogroup :找出不存在群組的檔案

技術分享圖片

上面找出的檔案的擁有者都是root

其他參數大家自己試試

3.與檔案權限及名稱有關的參數:

  (1) -name file:找出文件名為file的檔案

技術分享圖片

  (2) -size [+-]SIZE:找出比SIZE(+)大(-)小的檔案,其中SIZE可以用c(字節)、k(1024字節)表示,(-size +100k,找出大於100k的檔案)

技術分享圖片

  (3) -type TYPE:找出類型為TYPE的檔案,其中TYPE可以用 一般檔案(f)、裝置檔案(b,c)、目錄(d)、連接檔(l)、socket(s)、FIFO(p)表示

    技術分享圖片 技術分享圖片

  (4) -perm mode:找出檔案權限剛好等於mode的檔案

技術分享圖片

  (5) -perm -mode:找出檔案權限要全部包含mode的檔案

  (6) -perm +mode:找出檔案權限包含任一mode的檔案

技術分享圖片

4.額外可進行的動作:

  -exec command:-exec後面接其他指令,可以額外出來搜尋出來的結果

技術分享圖片

一:檔案和目錄篇(5)——搜尋檔案