1. 程式人生 > >Linux文件查找命令find(轉)

Linux文件查找命令find(轉)

參數 單位 command 字符 exe 十個 linux tro pre

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

語法

findpath -option [-print] [-exec -ok command] {} ;

參數說明:

find 根據下列規則判斷path和expression,在命令列上第一個-(),!之前的部份為path,之後的是expression。如果path是空字串則使用目前路徑,如果expression是空字串則使用-print為預設expression。

expression中可使用的選項有二三十個之多,在此只介紹最常用的部份。 -mount
, -xdev:只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件 -amin n:在過去n分鐘內被讀取過 -anewer file:比文件file更晚被讀取過的文件 -atime n:在過去n天過讀取過的文件 -cmin n:在過去n分鐘內被修改過 -cnewer file:比文件file更新的文件 -ctime n:在過去n天過修改過的文件 -empty:空的文件
-gid n or -group name: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,w是二個位元組
-type 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

實例

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

find . -name "*.c"

將目前目錄其其下子目錄中所有一般文件列出

find . -type f

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

find . -ctime -20

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

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

查找前目錄中文件屬主具有讀、寫權限,並且文件所屬組的用戶和其他用戶具有讀權限的文件:

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

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

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

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

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

轉自:http://www.runoob.com/linux/linux-comm-find.html

Linux文件查找命令find(轉)