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程序。
相關文章
相關標籤/搜索