我們都知道在Linux中有着上千條的命令,而常用命令不過百條。
我們也知道在Linux里面“一切皆文件”,那么如何能夠快速的找到你想要找的東西就顯得尤為重要。
find是Linux里面最重要的命令之一,它有着強大的查詢功能。它是在不指定查找目錄的情況下是對整個系統進行遍歷查找,並執行指定操作。find是直接搜索硬盤,所以在遍歷一個大的文件系統是就可能會消耗大量的時間,它類似於Windows下的搜索。
1. find的使用格式: find [PATHNAME][option][action]
我們知道 PATHNAME 是 find命令查找的路徑。例如 . 代表當前目錄, / 代表根目錄,當然我們也可以指定路徑如 /tmp
——>a.按類型查找

看一下執行結果:
查找文件:

查找目錄:

——>b.按名字查找

如果查找出來的文件太多,不好顯示怎么辦?Linux也為我們提供了可改的輸出模式。例如:
-print :將查找到的匹配的文件輸出到標准輸出
find /home -type f -print
-exec :將查找到的文件進行額外的動作
find /home/qiao/桌面 -name “1.txt” -exec rm {} \; ——> 意思即為找到1.txt之后刪除它
• {}代表的是find做找到的內容,即find的結果會被放到{}的位置中;
• -exec 到 \; 是關鍵字代表find額外動作的開始(-exec)到(\;)結束,這中間的就是find指令內的額外動作,在上面例子中就是【 rm {} 】;
• \ 為轉義字符
find還有好多其他的參數,總結如下:
-name 按照⽂件名查找⽂件。
-perm 按照⽂件權限來查找⽂件。
-prune 使⽤這⼀選項可以使find命令不在當前指定的目錄中查找,如果同時使⽤-depth選項,那么-prune將被find命令忽略。
-user 按照⽂件屬主來查找⽂件。
-group 按照⽂件所屬的組來查找⽂件。
-mtime -n +n 按照⽂件的更改時間來查找⽂件, - n表⽰⽂件更改時間距現在n天以內, + n表⽰⽂件更改時間距現在n天以前。
ps:find命令還有-atime和-ctime 選項,但它們都和-m time選項相同。
-nogroup 查找⽆有效所屬組的⽂件,即該⽂件所屬的組在/etc/groups中不存在。
-nouser 查找⽆有效屬主的⽂件,即該⽂件的屬主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改時間⽐⽂件file1新但⽐⽂件file2舊的⽂件。
-type 查找某⼀類型的⽂件,例如:
b - 塊設備⽂件。
d - 目錄。
c - 字符設備⽂件。
p - 管道⽂件。
l - 符號鏈接⽂件。
f - 普通⽂件。
-size n: [c] 查找⽂件⻓度為n塊的⽂件,帶有c時表⽰⽂件⻓度以字節計。
-depth:在查找⽂件時,⾸先查找當前目錄中的⽂件,然后再在其⼦目錄中查找。
-fstype:查找位於某⼀類型⽂件系統中的⽂件,這些⽂件系統類型通常可以在配置⽂件/etc/fstab中找到,該配置⽂件中包含了本系統中有關⽂件系統的信息。
-mount:在查找⽂件時不跨越⽂件系統mount點。
-follow:如果find命令遇到符號鏈接⽂件,就跟蹤⾄鏈接所指向的⽂件。
-cpio:對匹配的⽂件使⽤cpio命令,將這些⽂件備份到磁帶設備。
