linux下的find指令

2021-07-29 17:40:51 字數 2555 閱讀 7790

在linux下我們可以用到三個命令來查詢檔案,通常我們都是先使用whereis或者是locate來檢查,如果真的找不到了我們才以find來找。為什麼呢?因為whereis和locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟比較老舊的話,就會花費很長的時間。

我們上面說到whereis和locate找不到了才會使用find查詢,所以find是很強大的查詢命令,下面我們看一下find的功能有哪些:

1.命令格式:

find pathname -options [-print -exec -ok …]

2.命令功能:

用於在檔案樹中查詢檔案,並做相應的處理(可能訪問磁碟)

3.命令選項:

按照檔名,檔案許可權,檔案所屬查詢

-prune 命令的詳解:

(存在目錄dir0和dir1及其子目錄)

1:在除dir0及子目錄以外的目錄下查詢txt字尾檔案

find .

/-path

'./dir0*'

-a-prune

-o-name

*.txt -print

說明:-a 應該是and的縮寫,意思是邏輯運算子『與』(&&); -o應該是or的縮寫,意思是邏輯運算子『或』(||), -not 表示非.

命令列的意思是:如果目錄dir0存在(即-a左邊為真),則求-prune的值,-prune 返回真,『與』邏輯表示式為真(即-path 『./dir0*』 -a -prune 為真),find命令將在除這個目錄以外的目錄下查詢txt字尾檔案並列印出來;如果目錄dir0不存在(即-a左邊為假),則不求值-prune ,『與』邏輯表示式為假,則在當前目錄下查詢所有txt字尾檔案。

(dir0*表示dir0及其子目錄)

2:在除dir0、dir1及子目錄以外的目錄下查詢txt字尾檔案

find .

/\( -path

'./dir0*'

-o-path

'./dir1*'

\) -a

-prune

-o-name

*.txt -print

注意:圓括號()表示表示式的結合。即指示 shell 不對後面的字元作特殊解釋,而留給 find 命令去解釋其意義。由於命令列不能直接使用圓括號,所以需要用反斜槓』\』進行轉意(即』\』轉意字元使命令列認識圓括號)。同時注意』(『,』)』兩邊都需空格。

時間引數

atime:檔案最後一次被訪問的時間

ctime:改變檔案的屬性更新的時間

mtime:改變檔案內容時更新的時間

你想找出被改動的過的檔名使用命令:find ~ -mtime n

(~代表主工作目錄可以換成其他目錄,n代表天數,如下圖所示)

其他命令選項:

-nogroup 查詢⽆無有效所屬組的⽂檔案,即該⽂檔案所屬的組在/

etc/groups中不存在。

-nouser 查詢⽆無有效屬主的⽂檔案,即該⽂檔案的屬主在/etc/

passwd中不存在。

-newer file1 ! file2 查詢更改時間⽐比⽂檔案file1新但⽐文

件file2舊的⽂檔案。

-type d 目錄

-type b 塊裝置檔案

-type c 字元裝置檔案

-type p 管道檔案

-type l 符號鏈結檔案

-type f 普通檔案

-size nc 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組記

linux ⽤用find命令查詢⽂檔案大小為xx的檔案的辦法:

例如:⼀乙個⽂檔案5556位元組,可以這樣寫

find /root -size -5557c -size +5555c -exec ls -ld {} \;

即查詢⼤大於5555位元組⼩小於5557位元組的⽂檔案,以上查詢的是/root目錄。

find /root -size -500k -size +50k -exec ls -ld {} \;

查詢 小於500k,大於50k的⽂檔案。

-mount 在查詢檔案時不跨越檔案系統的mount點。

-follow 如果find命令遇到符號鏈結檔案,就跟蹤至鏈結所指向的檔案。

-fstype 在查詢位於某一檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,改配置檔案中包含了本系統中有關檔案系統的資訊。

Linux下的find指令

在linux 下我們可以用到三個命令來查詢檔案,通常使用whereis或者是locate來檢查,如果真的找不到了我們就以find來找。因為whereis和locate是利用 資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟比較老舊的話,就...

Linux下的指令 查詢指令 find

linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。1.linux下find命令格式 find pathname options print exec ok 2.命令功能 用於在檔案樹中查詢檔案,並作出相應的處理 可能訪問磁碟 3.命令引數 pathname find命令所查詢的目錄路徑...

Linux下find指令的使用

find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。find 選項 引數 選項 引數 起始目錄 查詢檔案的起始目錄。例項 根據檔案或者正規表示式進...