linux的find命令詳解
- IT科技
- 關注:8.99K次
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 {} ;
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/1p10y8.html