請關注本頭條號,每天堅持更新原創乾貨技術文章。
如需學習視頻,請在微信搜索公眾號「智傳網優」直接開始自助視頻學習
1. 前言
本文主要講解在Linux系統上如何使用find命令
find命令怎麼用
2. `find`命令的使用方法
要開始搜索整個硬碟,您需要輸入以下內容:
find /
但是,如果您想開始搜索當前所在的文件夾,那麼可以使用find命令以下語法:
find .
當您想在整個硬碟中按名稱搜索文件時,請使用find命令以下語法:
假設你要搜索的文件名為filename
find / -name filename
find命令的第一部分顯然是單詞find。
第二部分是從哪裡開始搜索。即指定目錄,它會自動搜索指定目錄里的子目錄
第三部分是一個表達式,它決定要查找什麼。
最後一部分是要找的文件名。
find命令使用方法
3. `find`命令搜索位置的快捷方式
find之後的第一個參數是要搜索的位置。雖然可以指定特定的目錄,但是大多數人使用元字符作為替代。使用這個命令的三個元字符包括:
句點:指定當前文件夾和所有嵌套文件夾
左斜槓/:指定整個文件系統
波浪符號~:指定活動用戶的主目錄
提示:搜索整個文件系統可能會產生許多訪問拒絕錯誤。一般的用戶帳號都會遇到權限的問題,這時,應該使用提升的特權運行該命令(例如,使用sudo)。
表達式
最常用的表達式是-name。name表達式允許搜索文件或文件夾的名稱。
然而,你也可以用其他的表達方式:
-amin n: 該文件最後一次訪問是在n分鐘前
-anewer: 最後一次訪問該文件的時間比修改該文件的時間晚
-atime n: 該文件最後一次被訪問是在n天前
-cmin n: 文件最後一次更改是在n分鐘前
-cnewer: 文件最後一次更改的時間比文件修改的時間更近
-ctime n: 文件最後一次更改是在n天前
-empty: 文件為空
-executable: 該文件是可執行的
-false: 總是錯誤的
-fstype type: 該文件位於指定的文件系統上
-gid n: 該文件屬於ID為n的組
-group groupname: 該文件屬於指定的組
-ilname pattern: 搜索符號行,但忽略大小寫
-iname pattern: 搜索文件但忽略大小寫
-inum n: 搜索具有指定節點的文件
-ipath path: 搜索路徑但忽略大小寫
-iregex expression: 搜索表達式但忽略大小寫
-links n: 搜索具有指定連結數量的文件
-lname name: 搜索符號連結
-mmin n: 文件的數據最後一次修改是在n分鐘之前
-mtime n: 文件的數據上次修改是在n天前
-name name: 搜索具有指定名稱的文件
-newer name: 搜索最近編輯的文件,而不是給定的文件
-nogroup: 搜索沒有組id的文件
-nouser: 搜索沒有附加用戶的文件
-path path: 查找路徑
-readable: 查找可讀的文件
-regex pattern: 搜索匹配正則表達式的文件
-type type: 搜索特定類型
-uid uid: 文件數字用戶id與uid相同
-user name: 文件由指定的用戶擁有
-writable: 搜索可寫入的文件
4. `find`命令使用案例
find命令使用案例
如何查找訪問文件超過一定天數的前幾天
要查找100天前訪問過的主文件夾中的所有文件,請:
find ~ -atime 100
如何找到空的文件和文件夾
要查找系統中的所有空文件和文件夾:
find / -empty
如何找到所有的可執行文件
要在你的電腦上找到所有可執行文件:
find / -exec
如何找到所有可讀的文件
要找到所有可讀的文件:
find / -read
模式
在搜索文件時,可以使用模式。例如,搜索擴展名為mp3的所有文件:
find / -name *.mp3
如何將Find命令的輸出發送到文件
find命令的主要問題是,它有時會返回太多的結果,無法一次性查看。通過管道將輸出輸出到tail命令,或者您可以將這些行輸出到一個文件中,如下所示:
find / -name *.mp3 -fprint nameoffiletoprintto
如何查找並對文件執行命令
同時搜索和編輯一個文件:
find / -name filename -exec nano '{}' \\;
上面的命令搜索一個名為filename的文件,然後為它找到的文件運行nano編輯器。
5. 結論
通過本文,你應該對find命令怎麼用有所了解了吧?這是Linux運維中最常用的命令了,一定要學習使用。
本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下連結:
https://www.linuxrumen.com/rmxx/1291.html