描述:從指定的起始目錄開始,遞歸的查找其各個子目錄,查找知足條件的文件並對之採起相關的操做。shell
用法:find 起始目錄 查找條件 執行操做ui
查找條件:code
-name filename 查找名爲filename的文件遞歸
-iname 不區分大小寫進程
-perm 按執行權限查找io
-user 按文件屬主來查找test
-group 按組來查找效率
-uid n 查找用戶UID爲n的全部文件;file
-gid n 查找組GID爲n的全部文件;搜索
-empty 查找空文件
-mtime -n +n n 按文件更改時間來查找文件,-n指n天之內,+n指n天之前,n指n天之前的一天以內
-atime -n +n n 按文件訪問時間來查找文件
-ctime -n +n n 按文件建立時間來查找文件
-amin n 查找n分鐘前被訪問的文件;注意:-n表示文件被訪問時間距如今n分鐘之內,+n表示文件被訪問時間距如今n分鐘之前;
-cmin n 查找n分鐘前文件屬性被修改
-mmin n 查找n分鐘前文件內容被修改
-nogrounp 查無有效屬組的文件,即在/etc/group中不存在
-nouser 查無有效屬組的文件,即在/etc/passwd中不存在
-newer f1 !f2 查更改時間比f1新但比f2舊的文件
-type b/d/c/p/l/f 查塊設備、目錄、字符設備、管道、符號連接、普通文件
-size n[c] 查長度爲n塊[或n字節]的文件
-depth 使查完本目錄後再進入子目錄
-fstype 查找位於某一文件系統中的文件,這些文件系統類型一般在/etc/fstab中
-mount 查文件時不跨越文件系統mount點
-follow 若是遇到符號連接文件,就跟蹤連接所指的文件
-cpio 對匹配的文件使用cpio命令,將他們備份到磁帶當中
-prune 忽略某個目錄
-maxdepth 容許制定find搜索深刻到目錄樹的哪一級別
-mindepth 容許制定find搜索深刻到目錄樹的哪一級別
執行操做:
-print: find命令將匹配的文件輸出到標準輸出
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令形 式爲‘command' { } \;注意{ }和\;之間的空格。
-ok: 和-exec相同,在操做前要詢問用戶
邏輯運算符:
-a (and)
-o (or)
! (not)
示例:1. 查找/home(包含子目錄)目錄中,在24小時內被訪問過的文件。
[root@share19 ~]# find /home -atime 0
2.查找/home(包含子目錄)目錄中,擁有者和用戶組不存在的文件,並執行刪除操做。
[root@share19 ~]# find /home -nouser -a -nogroup -exec rm -rf {} \;
[root@share19 ~]# find /home -nouser -a -nogroup -ok rm -rf{} \;
3.查找test目錄中大小爲零的文件並把它們移動到/tmp/zerobyte目錄中。
[root@share19 ~]# find /test -type f -size 0 -exec mv {} /tmp/zerobyte \;
4.查找當前目錄中權限爲777的文件,並列出詳細列表。
[root@share19 ~]# find . -type f -perm 777 -ls
5.xargs命令對匹配結果分批處理並只產生一個進程
比較一下兩個命令的執行效率
[root@share19 ~]# find / -type f -exec ls -l {} \;
[root@share19 ~]# find / -type f |xargs ls -l