Linux系統(tǒng)上使用find命令查找文件的N種案例
1. 前言
本文主要講解在Linux系統(tǒng)上如何使用find命令。
2. find命令的使用方法
要開始搜索整個硬盤,您需要輸入以下內(nèi)容:
- find /
但是,如果您想開始搜索當(dāng)前所在的文件夾,那么可以使用find命令以下語法:
- find .
當(dāng)您想在整個硬盤中按名稱搜索文件時,請使用find命令以下語法:
假設(shè)你要搜索的文件名為filename
- find / -name filename
find命令的第一部分顯然是單詞find。
第二部分是從哪里開始搜索。即指定目錄,它會自動搜索指定目錄里的子目錄
第三部分是一個表達(dá)式,它決定要查找什么。
最后一部分是要找的文件名。
3. find命令搜索位置的快捷方式
find之后的第一個參數(shù)是要搜索的位置。雖然可以指定特定的目錄,但是大多數(shù)人使用元字符作為替代。使用這個命令的三個元字符包括:
- 句點(diǎn):指定當(dāng)前文件夾和所有嵌套文件夾
- 左斜杠/:指定整個文件系統(tǒng)
- 波浪符號~:指定活動用戶的主目錄
- 提示:搜索整個文件系統(tǒng)可能會產(chǎn)生許多訪問拒絕錯誤。一般的用戶賬號都會遇到權(quán)限的問題,這時,應(yīng)該使用提升的特權(quán)運(yùn)行該命令(例如,使用sudo)。
表達(dá)式
最常用的表達(dá)式是-name。name表達(dá)式允許搜索文件或文件夾的名稱。
然而,你也可以用其他的表達(dá)方式:
- amin n: 該文件最后一次訪問是在n分鐘前
- anewer: 最后一次訪問該文件的時間比修改該文件的時間晚
- atime n: 該文件最后一次被訪問是在n天前
- cmin n: 文件最后一次更改是在n分鐘前
- cnewer: 文件最后一次更改的時間比文件修改的時間更近
- ctime n: 文件最后一次更改是在n天前
- empty: 文件為空
- executable: 該文件是可執(zhí)行的
- false: 總是錯誤的
- fstype type: 該文件位于指定的文件系統(tǒng)上
- gid n: 該文件屬于ID為n的組
- group groupname: 該文件屬于指定的組
- ilname pattern: 搜索符號行,但忽略大小寫
- iname pattern: 搜索文件但忽略大小寫
- inum n: 搜索具有指定節(jié)點(diǎn)的文件
- ipath path: 搜索路徑但忽略大小寫
- iregex expression: 搜索表達(dá)式但忽略大小寫
- links n: 搜索具有指定鏈接數(shù)量的文件
- lname name: 搜索符號鏈接
- mmin n: 文件的數(shù)據(jù)最后一次修改是在n分鐘之前
- mtime n: 文件的數(shù)據(jù)上次修改是在n天前
- name name: 搜索具有指定名稱的文件
- newer name: 搜索最近編輯的文件,而不是給定的文件
- nogroup: 搜索沒有組id的文件
- nouser: 搜索沒有附加用戶的文件
- path path: 查找路徑
- readable: 查找可讀的文件
- regex pattern: 搜索匹配正則表達(dá)式的文件
- type type: 搜索特定類型
- uid uid: 文件數(shù)字用戶id與uid相同
- user name: 文件由指定的用戶擁有
- writable: 搜索可寫入的文件
4. find命令使用案例
如何查找訪問文件超過一定天數(shù)的前幾天
要查找100天前訪問過的主文件夾中的所有文件,請:
- find ~ -atime 100
如何找到空的文件和文件夾
要查找系統(tǒng)中的所有空文件和文件夾:
- find / -empty
如何找到所有的可執(zhí)行文件
要在你的電腦上找到所有可執(zhí)行文件:
- find / -exec
如何找到所有可讀的文件
要找到所有可讀的文件:
- find / -read
模式:
在搜索文件時,可以使用模式。例如,搜索擴(kuò)展名為mp3的所有文件:
- find / -name *.mp3
如何將Find命令的輸出發(fā)送到文件
find命令的主要問題是,它有時會返回太多的結(jié)果,無法一次性查看。通過管道將輸出輸出到tail命令,或者您可以將這些行輸出到一個文件中,如下所示:
- find / -name *.mp3 -fprint nameoffiletoprintto
如何查找并對文件執(zhí)行命令
同時搜索和編輯一個文件:
- find / -name filename -exec nano '{}' \;
上面的命令搜索一個名為filename的文件,然后為它找到的文件運(yùn)行nano編輯器。
5. 結(jié)論
通過本文,你應(yīng)該對find命令怎么用有所了解了吧?這是Linux運(yùn)維中最常用的命令了,一定要學(xué)習(xí)使用。