開心生活站

位置:首頁 > IT科技 > 

linux的find命令詳解

1、語法:

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

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

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

-exec:find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式爲'command' { } ;,注意{ }和;之間的空格。

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

2、參數說明:

-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:目錄

c:字型裝置文件

b:區塊裝置文件

p:具名貯列

f:一般文件

l:符號連結

s: socket

-pid n : process id是n的文件

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

exp1 -and exp2

! expr

-not expr

exp1 -or exp2

exp1, exp2

3、實例:

將目前目錄及其子目錄下所有延伸檔名是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的普通文件,並列出它們的完整路徑:

# find / -type f -size 0 -exec ls -l {} ;

linux的find命令詳解

標籤:命令 linux