linux 的find指令的一些常用方法

2021-07-27 03:41:45 字數 2801 閱讀 8592

find指令: linux下find命令在目錄結構中搜尋⽂檔案,並執⾏行指定的操作。

命令格式: find pathname -options [-print -exec -ok ...]

命令功能:

用於在⽂檔案樹種查詢⽂檔案,並作出相應的處理(可能訪問磁碟)

命令引數:

1). pathname: find命令所查詢的目錄路徑。

例如用.來表⽰示當前目錄,用/來表⽰示系統根目錄,用~表示工作目錄,..表示上級目錄等。 2)

-print: find命令將匹配的檔案輸出到標準輸出。 

-exec: find命令對匹配的檔案執⾏行該引數所給出的shell命 令。

相應命令的形式為'command' \;,注意和\; 之間的空格。 

-ok: 和-exec的作⽤用相同,只不過以一種更為安全的模式來執⾏, 該引數所給出的shell命令,在執⾏行每1個命令之前,都會給出提示,讓使用者來確定是否執⾏。

例子: 1. 在/ l o g s目錄中查詢更改時間在5日以前的⽂件並刪除它們:    $ find logs -type f -mtime +5 -exec    -ok    rm {} \

3).options:命令選項:

(1)-name   按照檔名查詢檔案。 例:

$find ~ -name "*.txt" -print      #在$home中查.txt檔案並顯示  $find . -name "[a-z]*" -print      #查以大寫字母開頭的檔案                                    $find /etc  -name  "host*"  -print #查以host開頭的檔案 $find .  -name  "[a-z][a-z][0–9][0–9].txt" -print   #查以兩個小寫字母和兩個數字開頭的txt檔案

(2)-perm   按照檔案許可權來查詢檔案。 例:

$find .  -perm   755  -print

$find  . -perm -007    -exec ls -l {} \; #查所有使用者都可讀寫執行的檔案同時列出

(3)-prune  使⽤這一選項可以使find命令不在當前指定的目錄中查詢,如果同時使⽤用-depth選項,那麼-prune將被find命令忽略。

(4)-user / -group   按照⽂檔案屬主/組來查詢⽂件。 例:

find /home  -user  cnscn 列出/home目錄內屬於使用者cnscn的檔案或目錄

find  /home -group  cnscn   列出/home內組為cnscn的檔案或目錄

(5)-mtime -n +n  按照⽂檔案的更改時間來查詢⽂檔案, - n表⽰示⽂件更改時間距現在n天以內,+ n表⽰示⽂檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time 選項相同. 例:

find  /home  -mtime  -2   在/home下查最近兩天內改動過的檔案

find /home -atime -1       查1天之內被訪問過的檔案

find /home -mmin  +60  在/home下查60分鐘前改動過的檔案

find  /home  -amin   +30   查最近30分鐘前被訪問過的檔案

(6)-nogroup  查詢無有效所屬組的⽂檔案,即該檔案所屬的組在/etc/groups中不存在。

(7)-nouser   查詢無有效屬主的⽂檔案,即該⽂件的屬主在/etc/ passwd中不存在。

(8)-newer file1 ! file2  查詢更改時間⽐比⽂檔案file1新但⽐檔案file2舊的⽂件。 例:

(7) find /home -newer  tmp.txt!temp.c   在/home下查更新時間比tmp.txt近但⽐檔案tep.c舊的⽂件。

(9)-type  查詢某⼀一型別的⽂檔案,諸如:b - 塊裝置⽂檔案。d - 目錄。

c - 字元裝置⽂檔案。p - 管道⽂檔案。l - 符號鏈結⽂檔案。f - 普通⽂檔案。 例:

$find  .  -type   d   -print 

$find   .  -type l   -print

(10)-size n:[c] 查詢檔案長度為n塊的檔案,帶有c時表⽰檔案長度以位元組計。 例:

$find  . -size  +1000000c -print    #查長度大於1mb的檔案 $find  . -size   100c   -print   # 查長度為100c的檔案 $find  . -size  +10   -prin    #查長度超過期作廢

10塊的檔案(1塊

=512

位元組(11)-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其⼦目錄中查詢。

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

(13)-mount:在查詢⽂件時不跨越檔案系統mount點。

(15)-cpio:對匹配的檔案使⽤用cpio命令,將這些⽂件備份到磁帶裝置中。

2. 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的⽂檔案 

linux 的一些指令

ls pwd 顯示使用者當前所在的目錄 cd 將當前工作目錄改變到指定目錄下 touch 建乙個檔案 rmmkdir 建立目錄 rmdir 刪除目錄或者檔案 man cp src dest ctrl l 清屏 clear su username 切換賬戶到username 退出賬戶 exit 0 c...

Linux一些指令

date 檢視日曆 cal 輸出 檢視命令 顯示輸入的內容 echo 顯示文字檔案內容 cat 翻頁顯示檔案內容 只能向下翻頁 more 翻頁顯示檔案內容 帶上下翻頁 less 顯示檔案的頭幾行 預設10行 head n 指定顯示的行數 顯示檔案的末尾幾行 預設10行 tail n f追蹤顯示檔案更...

linux一些指令的補充

chgrp 改變群組 chgrp命令變更檔案或目錄所屬群組,比如 檢視現在aa檔案所屬組為clip root clip clip ls l aa total 32040 rwxrwxr x 1 clip clip 1260 apr 26 14 05 aa 想更改為delijia 這個地方改變的群組必...