1. 程式人生 > >【Linux】find命令

【Linux】find命令

用途

find命令用於在指定目錄下查詢檔案。

全稱

引數

-name :後跟需要匹配的檔名模式,需要使用引號引起來

下面是一些簡單的示例查詢:(~表示$HOME目錄)

1.查詢當前$HOME下'.log'結尾的檔案

find ~ –name "*.log" –print

2.當前目錄與子目錄下查詢所有'.log'結尾的檔案

find . –name "*.log" –print

3.當前目錄與子目錄下查詢檔名以一個大寫字母開頭的檔案

find . –name "[A-Z]" –print

4.在/etc目錄下查詢檔名以host開頭的檔案

find /etc –name "host*" –print

5.在當前目錄查詢檔名以一個小寫字母開頭,最後是4到9加上.txt結束的檔案

find . –name "[a-z]*[4-9].txt" –print

 

-iname :根據檔名查詢檔案,不區分大小寫

1.查詢檔名為.log結尾的檔案,不區分大小寫

find . –iname "*.log" –print

-perm :後跟檔案許可權,按檔案許可權模式來查詢檔案

1.查詢當前目錄下檔案許可權為777的檔案

find . –perm 777 –print

 

-prune :忽略某個目錄

1.希望在tmp下查詢,但不希望在/tmp/tmp1下查詢

find test –path "/tmp/tmp1" –prune –o –print

2.希望在tmp下查詢,但不希望在/tmp/tmp1、/tmp/tm2、/tmp/tmp3等多個資料夾下查詢

find test \(–path tmp/tmp1 –o –path tmp/tmp2 –o –path tmp/tmp2 \) –prune –o –print

-user與nouser :根據檔案屬主查詢與查詢屬主賬戶已經被刪除的檔案

1.查詢檔案屬主為qinys的所有檔案

find ~ –user qinys –print

2.查詢刪除使用者Tom的檔案

find /home –nouser  –print

 

-group與nogroup :根據檔案屬於的使用者組查詢與查詢屬使用者組已經被刪除的檔案

1.查詢檔案屬主為qinys的所有檔案

find ~ –group gp1 –print

2.查詢刪除使用者Tom的檔案

find /home –nogroup  –print

 

-mtime\atime\ctime :根據更改時間或者訪問時間等查詢檔案

1.在根目錄下查詢更改時間在5日以內的檔案

find / –mtime -5 –print

2.查詢/home目錄下3日以前的檔案

find / –mtime +3 –print

 

-newer :查詢更改時間比某個檔案新但另外一個檔案舊的所有檔案

語法:new_file_name ! old_file_name

其中!是邏輯非符號

1.查詢更改時間比檔案a.log新,但比檔案b.log舊的檔案(假如現在是在目錄/home下)

find –newer a.log ! -newer b.log

2.查詢更改時間比tmp.log新的檔案

find . –newer tmp.log

 

-size :根據檔案大小來查詢檔案(這裡的檔案長度既可以使用塊來計量,也可以使用位元組來計量)

1.查詢當前目錄下檔案長度大於1M位元組的檔案

find . –size +1000000c –print

2.在目錄/home下查詢檔案長度恰好為100位元組的檔案

find . –size 100c –print

3.在當前目錄下查詢長度超過10塊的檔案(一塊等於512位元組)

find . –size +10 –print

 -type查詢某一型別的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。

 

案例

1.在目錄中查詢更改時間在6日以前的檔案並刪除他們(注:今天是20190109)

image

從上圖我們可以看出,符合查詢的檔案test.sh已經被刪除

2.在目錄中查詢更改時間在1日以前後綴為.log的檔案並刪除他們,刪除時候提示

image