Linux下的find命令詳解__Linux

來源:互聯網
上載者:User

這篇部落格講講Linux下檔案尋找的命令:locate和find,其中locate很簡單,主要講解find命令 locate

用法

locate to/find/file/name

直接加上需要的檔案名稱就行了,但是locate尋找的可能是不精確的,甚至可能找不到你需要的
因為locate實際是尋找檔案資料庫,所以速度很快,但是是非精確匹配的,另外如果你剛建立的檔案想要尋找的話,因為資料庫還是沒更新,所以尋找不到

更新檔案資料庫

updatedb

速度非常慢,視你的系統中檔案的多少決定 find

由於locate的非精確尋找和非即時尋找的特性,導致locate用的不多
find支援即時尋找,擁有眾多尋找選項,是Linux上尋找最常用的,但是缺點也是比較明顯: 如果檔案數量很多的話,尋找起來很慢

whatever,find依然是最有用且最常用的Linux尋找命令 用法

find支援檔案名稱的Regex尋找,按檔案修改時間尋找,按檔案大小尋找,按檔案許可權尋找,按檔案類型尋找等,尋找到以後還支援直接對尋找到的檔案使用命令,功能非常強大

典型的find命令的寫法是:

find 尋找路徑 尋找的標準 尋找到之後的動作

比如: find /home -type d -ls
意思是: 找出/home/下所有的目錄,並顯示目錄的詳細資料 選項 按檔案名稱尋找 -name
直接加檔案名稱,且支援檔案名稱通配 iname
類似於-name, 但是匹配檔案名稱時不去分大小寫 -regex
Regex匹配檔案名稱

example:

find . -name "vim*" -ls
尋找目前的目錄下所有以vim開頭的檔案,並顯示其詳細資料
find . -iname "vim*" -ls
尋找目前的目錄下所有以vim開頭的檔案(不區分大小寫),並顯示其詳細資料 按檔案類型尋找 -type 檔案屬性 d: 目錄 f: 普通檔案 l: 連結檔案(link) s: socket檔案 p: 管道檔案(pipe) b: 塊裝置檔案 c: 字元裝置檔案

example:

find . -type d -ls
顯示目前的目錄下所有的目錄的詳細資料
find . -type l -ls
顯示目前的目錄下所有的連結檔案的詳細資料 按檔案所屬組/owner尋找 -gid GID -uid UID -user USER -group GROUP -nouser -nogroup

exmaple:

find . -user gavinzhou -ls
顯示目前的目錄下屬於gavinzhou的所有的檔案的詳細資料 按檔案大小尋找 size [+,-][b,k,M,G]

example:

find . -type f -size +1k -ls
顯示目前的目錄下所有大於1k的普通檔案的詳細資料 按檔案的修改時間等尋找 ctime: 改變時間(按照天計算) atime: 訪問時間 mtime: 修改時間
-amin: 改變時間(按照分鐘計算)
-cmin: 訪問時間
-mmin: 修改時間

使用[+,-]表示[大於,小於]

example:

find . -atime -1 -ls
顯示目前的目錄下所有在兩天以內訪問過得檔案的詳細資料
find . -cmin +10 -ls
顯示目前的目錄下所有超過10min沒有改變過的檔案的詳細資料 按檔案許可權尋找

-perm MODE
/MODE: 任意一位匹配即滿足條件
-MODE: 檔案許可權能完全包含此MODE時才符合條件

example:

find . -perm -644 -ls
顯示目前的目錄下檔案許可權的每一位至少包含r-xr–r–的檔案的詳細資料
find . -perm /464 -ls
顯示目前的目錄下檔案許可權的某一位至少包含r–rx-r–的檔案的詳細資料 組合尋找

-a: and
-o: or
-not:

example:

find . -type d -o -type l -ls
顯示目前的目錄下所有目錄和連結檔案的詳細資料 後繼命令 -print: 顯示 -ls:類似ls -l的形式顯示每一個檔案的詳細 -quit: 尋找到一個就退出 -delete: 刪除匹配到的行 -ok COMMAND {} \; 每一次操作都需要使用者確認,{}表示引用找到的檔案,是預留位置 -exec COMMAND {} \; 每次操作無需確認

example:

find . -type d -delete
刪除目前的目錄下的所有目錄
find . -type f -ok wc -l {} \;
找出目前的目錄下所有的普通檔案並顯示檔案行數(需確認)
find . -type f -exec wc -l {} \;
找出目前的目錄下所有的普通檔案並顯示檔案行數(無需確認)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.