【Linux 搜尋內容 #5】find - 搜尋檔案名稱,並進行進一步處理 (顯示相對路徑、絕對路徑、刪除、重新命名、執行特定指令)

前言

以搜尋檔案而言 (不包含檔案內容),最好用的應該就是 find 指令了,
透過搭配 exec,還可以多執行一些額外功能

範例

基本搜尋

find ./ -name "test.txt"

檔案名稱可以用正規表達式,例如 *.txt 就是搜尋所有的 txt 檔案
而 ./ 可以是相對或絕對路徑,

搜尋檔案,並顯示絕對路徑

find ~+ -name "*.txt" 

~+ 是一種表示式,總之可以讓結果顯示為絕對路徑

搜尋檔案,並刪除

find ./ -name "*.txt" -delete

小心使用,刪了基本找不回來,等同於 rm 的效果

搜尋檔案,並執行特定指令

find ./ -name "*.txt" -exec ls -l {} \;

這裡表示對搜尋結果執行 ls -l,{} 可以取代前面的結果

  • -exec 就是執行後面的指令,需要搭配 ; 結尾表示指令結束
  • -execdir 如果不要完整的相對路徑,只需要最後的檔名可以用這個,經常用於對於大量資料夾檔案的單一檔名替換