在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 選項 引數 選項 引數 起始目錄 查詢檔案的起始目錄。例項 根據檔案或者正規表示式進...