find [path] [expression]
[path]啟始路徑
[expression]查詢參數
基本參數
- -name 以指定的範本搜尋檔案名稱
- -iname 同上,但不區分大小寫
- find . -name 'a*.jpg'在當前目錄下搜尋開頭為 a 的圖片檔案
- -path 以指定的範本搜尋檔案路徑
- -ipath 同上,但不區分大小寫
- find . -path '*pics/*pic_*.jpg'在當前目錄下搜尋 ./pics/pic_01.jpg, ./01/pics/pic_a1.jpg, ./02/pics/01/pic_aa.jpg 這些檔案
- -regex 以正規表示式搜尋檔案路徑
- -iregex 同上,但不區分大小寫
- find . -regex '.*pic_[0-9]+\.jpg'在當前目錄下搜尋 pic_01.jpg, pic_03.jpg, pic_03.jpg 這些檔案
- -type 搜尋檔案類型:一般檔案 (f),裝置檔案 (b,c),目錄(d),連結檔(l),socket(s),FIFO(p)
- find . -type l在當前目錄下搜尋所有連結檔
- -size 搜尋檔案大小:byte(c),Kilobytes(k),Megabytes(M),Gigabytes(G)
- find . -size 3k在當前目錄下搜尋大小為(3kb)的檔案
find . -size +3k在當前目錄下搜尋大於(3kb)的檔案
find . -size -3k在當前目錄下搜尋小於(3kb)的檔案
時間參數
- -mtime 搜尋檔案的修改時間(天)
- -mmin 同上,以分鐘為單位
- -ctime 搜尋檔案的建立時間
- -cmin 同上,以分鐘為單位
- -atime 搜尋檔案的最後開啟時間
- -amin 同上,以分鐘為單位
- find . -mtime 3在當前目錄下搜尋3天時修改的檔案
find . -mtime +3在當前目錄下搜尋3天前修改的檔案
find . -mtime -3在當前目錄下搜尋3天內修改的檔案
帳戶參數
- -user 搜尋指定帳戶名稱的檔案
- -nouser 同上,但是搜尋非帳戶名稱的檔案(-not -user)
- find . -user ftp在當前目錄下搜尋使用者名稱為(ftp)的檔案
find . -nouser ftp在當前目錄下搜尋使用者名稱非(ftp)的檔案- -group 搜尋指定群組名稱的檔案
- -nogroup 同上,但是搜尋非群組名稱的檔案(-not -group)
- find . -group ftp在當前目錄下搜尋群組名稱為(ftp)的檔案
find . -nogroup ftp在當前目錄下搜尋群組名稱非(ftp)的檔案- -perm 搜尋指定的檔案權限
- find . -perm 744在當前目錄下搜尋檔案權限為(744)的檔案
find . -perm +744在當前目錄下搜尋檔案權限小於(744)的檔案,(600,444)
find . -perm -744在當前目錄下搜尋檔案權限大於(744)的檔案,(744,774)
如果上面的指令你都會了,來點特別的吧!
邏輯處理
- () 將搜尋條件優先處理,在使用上記得用'\'跳脫
- -not 將搜尋條件反相
- ! 同上,在使用上記得用'\'跳脫
- -and 邏輯的(和)
- -a 同上
- -or 邏輯的(或)
- -o 同上
find . \(-user ftp -perm 744\) -or \(-group ftp\)在當前目錄下搜尋
使用者名稱為(ftp)且權限為(744)的檔案
或
群組名稱為(ftp)的檔案
其他
- -delete 將搜尋出來的檔案刪除
- find . -user ftp -delete刪除使用者名稱為(ftp)的檔案
- -printf 將搜尋出來的結果以自訂格式輸出
- find . -printf '%p\n'
- -fprintf 將搜尋出來的結果以自訂格式輸出至文件
- find . -fprintf a.txt '%p\n'
find - Linux Command - Unix Command
2 回應:
你要多弄些例題出來,別人也可以引用
有時間我會將這篇文章寫完整一點
謝謝您的意見
張貼留言