作者 | Lewis Cowles
譯者 | geekpi ? ? 共計翻譯:705 篇 貢獻時間:1646 天
使用簡單的命令在 Linux 下基於型別、內容等快速查詢檔案。
如果你是 Windows 或 OSX 的非資深使用者,那麼可能使用 GUI 來查詢檔案。你也可能發現介面受限,令人沮喪,或者兩者兼而有之,並學會了組織檔案並記住它們的確切順序。你也可以在 Linux 中做到這一點 —— 但你不必這樣做。
Linux 的好處之一是它提供了多種方式來處理。你可以開啟任何檔案管理器或按下 Ctrl+F
,你也可以使用程式手動開啟檔案,或者你可以開始輸入字母,它會過濾當前目錄串列。
使用 Ctrl+F 在 Linux 中查詢檔案的截圖
但是如果你不知道你的檔案在哪裡,又不想搜尋整個磁碟呢?對於這個以及其他各種情況,Linux 都很合適。
按命令名查詢程式位置
如果你習慣隨心所欲地放檔案,Linux 檔案系統看起來會讓人望而生畏。對我而言,最難習慣的一件事是找到程式在哪裡。
例如,which bash
通常會傳回 /bin/bash
,但是如果你下載了一個程式並且它沒有出現在你的選單中,那麼 which
命令就是一個很好的工具。
一個類似的工具是 locate
命令,我發現它對於查詢配置檔案很有用。我不喜歡輸入程式名稱,因為像 locate php
這樣的簡單程式通常會提供很多需要進一步過濾的結果。
有關 locate
和 which
的更多資訊,請參閱 man
頁面:
man which
man locate
find
find
工具提供了更先進的功能。以下是我安裝在許多伺服器上的指令碼示例,我用於確保特定樣式的檔案(也稱為 glob)僅存在五天,並且所有早於此的檔案都將被刪除。 (自上次修改以來,分數用於保留最多 240 分鐘的偏差)
find ./backup/core-files*.tar.gz -mtime +4.9 -exec rm {} \;
find
工具有許多高階用法,但最常見的是對結果執行命令,而不用鏈式地按照型別、建立日期、修改日期過濾檔案。
find
的另一個有趣用處是找到所有有可執行許可權的檔案。這有助於確保沒有人在你昂貴的伺服器上安裝比特幣挖礦程式或僵屍網路。
find / -perm /+x
有關 find
的更多資訊,請使用 man find
參考 man
頁面。
grep
想透過內容中查詢檔案? Linux 已經實現了。你可以使用許多 Linux 工具來高效搜尋符合樣式的檔案,但是 grep
是我經常使用的工具。
假設你有一個程式釋出程式碼取用和堆疊跟蹤的錯誤訊息。你要在日誌中找到這些。 grep
不總是最好的方法,但如果檔案是一個給定的值,我經常使用 grep -R
。
越來越多的 IDE 正在實現查詢功能,但是如果你正在訪問遠端系統或出於任何原因沒有 GUI,或者如果你想在當前目錄遞迴查詢,請使用:grep -R {searchterm}
或在支援 egrep
別名的系統上,只需將 -e
標誌新增到命令 egrep -r {regex-pattern}
。
我在去年給 Raspbian[1] 中的 dhcpcd5
打補丁時使用了這種技術,這樣我就可以在樹莓派基金會[2]釋出新的 Debian 時繼續操作網路接入點了。
哪些提示可幫助你在 Linux 上更有效地搜尋檔案?
via: https://opensource.com/article/18/4/how-find-files-linux
作者:Lewis Cowles[4] 選題:lujun9972 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出