Linux find命令詳解

2021-09-23 23:43:56 字數 1720 閱讀 4880

linux find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。

語法:

find  path   -option   [ -print ]  [ -exec | -ok  command  {} \]

path :  find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

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

-exec:find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' ;,注意和;之間的空格。

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

引數說明:

-amin n :在過去n分鐘內被讀取過

-anewer file :比檔案file更晚被讀取過的檔案

-atime n :在過去n天內被讀取過的檔案

-cmin n :在過去n分鐘內被修改過

-cnewer file :比檔案file更新的檔案

-ctime n :在過去n天內被修改過的檔案

注:以上+n表示n以前,-n 表示n以內

-empty :空的檔案-gid n or -groupname : gid是n或是group名稱是name

-ipath p, -path p :路徑名稱符合p的檔案,ipath會忽略大小寫

-name name, -iname name :檔名稱符合name的檔案。iname會忽略大小寫

-size n :檔案大小是n,單位,b代表512位元組的區塊,c表示字元數,k表示kilo bytes。

-type c :檔案型別是c的檔案。

d:目錄

-pid n : process id是n的檔案

你可以使用( )將表示式分隔,並使用下列運算。

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

例項:

將目前目錄及其子目錄下所有延伸檔名是c的檔案列出來。

# find . -name "*.c"

將目前目錄其其下子目錄中所有一般檔案列出

# find . -type f

將目前目錄及其子目錄下所有最近20天內更新過的檔案列出

# find . -ctime -20

查詢/var/log目錄中更改時間在7日以前的普通檔案,並在刪除之前詢問它們:

# find /var/log -type f -mtime +7 -ok rm {}\;

查詢前目錄中檔案屬主具有讀、寫許可權,並且檔案所屬組的使用者和其他使用者具有讀許可權的檔案:

# find . -type f -perm 644 -exec ls -l {}\;

為了查詢系統中所有檔案長度為0的普通檔案,並列出它們的完整路徑:

Linux find命令詳解

在linux上查詢某個檔案確實是一件比較麻煩的事情。畢竟在linux中需要我們使用專用的 查詢 命令來尋找在硬碟上的檔案。linux下的檔案表達格式非常複雜,不象windows,dos下都是統一的aaa.bbb格式那麼方便查詢,在windows中,只要知道要查詢的檔案的檔名或者字尾就非常容易查詢到。...

linux find命令詳解

pathname find命令所查詢 的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄 print find命令將匹配的檔案輸出到標準輸出 exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為 command 注意和 之間的空格。ok 和 exec的作用相同,...

Linux find命令詳解

用法總結如下 find pathname options print exec ok pathname 查詢路徑 option 主要選項如下 name 按照檔名稱查詢 perm 按照檔案許可權查詢 prune 不在當前指定的路徑查詢。如果同時指定了 depth選項,則prune被忽略 user 按照...