15.每日一個Linux命令----find

描述:從指定的起始目錄開始,遞歸的查找其各個子目錄,查找知足條件的文件並對之採起相關的操做。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
相關文章
相關標籤/搜索