1. 程式人生 > >3種方法來在Linux電腦上查詢檔案

3種方法來在Linux電腦上查詢檔案

 

如果你不太瞭解Linux命令,那麼在Linux系統裡查詢檔案是比較困難的。只要使用多種不同的終端命令,可以很快地找到檔案。Linux命令比其它作業系統的搜尋功能更加強大,掌握這些命令就能你完全控制這些檔案。

 

1

 

根據檔名搜尋檔案。 find命令是最基礎和常用的搜尋命令。它可以在當前路徑和任意子目錄中搜索檔案。 [1] 
find -iname "檔名"
  • -iname來代替-name,忽略檔名的大小寫。-name命令區分大小寫。
2

設定搜尋條件,從根目錄開始搜尋。如果想要搜尋整個系統,可以新增 /來修改命令。這樣, find命令會搜尋所有路徑,從根目錄開始搜尋檔案。
find / -iname "檔名"
  • 用具體的目錄路徑來代替/,可以搜尋特定路徑裡的檔案,如/home/pat
  • 你可以用.來代替/,這樣就能在當前路徑和子目錄下強制搜尋檔案。
3

使用萬用字元.* 搜尋任何匹配搜尋條件的檔案。 如果你不知道檔案全名,或想要查詢帶有特定副檔名的所有檔案,可以使用萬用字元 *
find /home/pat -iname "*.conf"
  • 這樣會在“Pat”使用者資料夾(所有子目錄)中找到所有.conf檔案。
  • 你也可以用它來查詢所有匹配部分檔名的檔案。例如,如果你有很多wikiHow相關的文件,可以輸入"*wiki*"來找到它們。
4

讓你的搜尋結果更方便管理。如果獲得很多搜尋結果,就很難細查篩選檔案。使用 " | "字元,將搜尋結果傳送到“less”篩選程式。這樣你就可以更簡單地瀏覽和篩選搜尋結果。
find /home/pat -iname "*.conf" | less




5
找到特定型別的結果。你可以使用修飾符來返回特定型別的結果。你可以使用 f搜尋常規檔案,用 d搜尋路徑,用 l搜尋符號連結檔案,用 c搜尋字元裝置,用 b遮蔽裝置。
find / -type f -iname "檔名"


6
根據大小過濾搜尋結果。
如果很多檔案的名稱相似,但是你知道目標檔案的大小,可以使用檔案大小進行過濾。
find / -size +50M -iname "檔名"
  • 上述命令會返回大於等於50MB的檔案。你可以使用+-來搜尋更大或更小的檔案。如果沒有加+-字元,就會只搜尋特定大小的檔案。
  • 你可以使用位元組(c)、千位元組(k)、兆位元組(M)、千兆位元組(G)或512位元組塊(b)來進行篩選。記住,這些檔案大小命令是區分大小寫的。
7

使用布林操作符來整合搜尋過濾。使用 -and-or-not操作符來整合不同型別的搜尋條件。 [2] 
find /travelphotos -type f -size +200k -not -iname "*2015*" 
  • 這個命令會在“travelphotos”目錄裡查詢大於200KB,檔名裡不包含“2015”的所有檔案。

 

8

根據使用者或許可權搜尋檔案。如果你想要查詢特定使用者的檔案,或是帶有特定許可權的檔案,可以根據此來縮窄搜尋條件。
find / -user pat -iname "檔名"
find / -group users -iname "檔名" find / -perm 777 -iname "檔名" 
  • 以上命令會搜尋特定使用者、群組或許可權的檔案。你可以忽略檔名,返回所有匹配條件的檔案。如:find / -perm 777會返回所有帶有777許可權的檔案(無限制條件)。[3]

 

9

將執行命令整合到搜尋檔案中。你可以將 find命令和其它命令整合到一起,這樣在返回搜尋結果時,執行命令。用 -exec來隔開 find命令和第二個命令,然後結尾用 {} \;字元。
find . -type f -perm 777 -exec chmod 755 {} \; 
  • 這樣會在當前路徑和所有子目錄裡搜尋帶有777許可權的檔案。找到檔案後,chmod命令會將許可權更改為755。

 

 

1

安裝.locate 功能。 由於 locate命令能夠讀取資料庫檔案的結構,所以,它通常比 find命令速度更快。但是,不是所有版本的Linux系統都安裝了 locate功能,你可能需要輸入以下命令來安裝它:
  • 輸入sudo apt-get update,按下回車鍵
  • 你可以在“Debian”和烏班圖系統裡安裝它:輸入sudo apt-get install mlocate,按下回車鍵。如果已經安裝了locate,那麼會看到mlocate is already the newest version的資訊。
  • 在“Arch Linux”系統裡,使用“pacman”安裝包管理器:pacman -Syu mlocate
  • 在“Gentoo”系統裡,使用“emerge”:emerge mlocate

 

2

更新.locate 資料庫。 除非建立並更新資料庫,否則 locate命令無法找到任何內容。一般來說,系統每天會自動更新資料庫,但是你也可以手動更新它。如果你想要立刻使用 locate命令,那就需要手動更新。 [4]
  • 輸入sudo updatedb,按下回車鍵

 

3

使用.locate 命令進行簡單的搜尋。  locate命令的執行速度很快,但是沒有 find命令那麼多選項。你可以用它來執行簡單的檔案搜尋,基本的搜尋方式與 find命令相同。
locate -i "*.jpg"
  • 這個命令會搜尋整個系統,找到帶.jpg字尾的檔案。萬用字元*find命令裡的萬用字元功能一致。
  • find命令類似,-i會忽略搜尋條件裡的大小寫。

 

4

限制搜尋條件。如果返回過多搜尋結果,處理不過來,你可以使用 -n選項來限制搜尋。在選項裡輸入數字,就會限制出現的搜尋結果數量。
locate -n 20 -i "*.jpg"
  • 只顯示匹配搜尋條件的前20個結果。
  • 你也可以使用" | "來將結果傳送到less程式。