使用計算機時的一個常見問題是您無法找到存儲在某處的文件。許多 GUI 程序允許您在 Linux 上工作時搜索文件,而不管發行版如何。但是,在某些情況下,您只能訪問命令行終端,尤其是在您管理服務器或使用 SSH 訪問系統時。如果找不到該文件,則需要使用 Linux 上的命令行程序來查找它。
本教程將向您展示如何使用終端(Ubuntu OS 中的命令行程序)搜索文件。在 shell 中,有三種眾所周知的文件搜索方式。
- 使用搜索文件 尋找 命令
- 利用 位置 搜索文件的命令
- 利用 抓地力 搜索文件的命令
search 和 search 命令用於搜索系統上的文件,grep 用於根據文件中包含的文本搜索文件。搜索是一種緩慢的方法,但它涉及多個搜索條件。另一方面,搜索不包括那麼多標準,但它比搜索快得多。
讓我們開始吧。我們將使用 Ubuntu 20.04 LTS 它用於解釋本文中描述的過程。
方法一:使用搜索命令
Search 是一個非常靈活的命令,用於根據各種條件搜索文件。在搜索您不記得文件名的文件時,這是一個非常有用的工具。[検索]您可以使用命令按名稱、創建日期、修改日期以及文件和文件夾的權限進行搜索。您可以將這些多個條件組合成一個搜索命令。這是一個非常強大但速度很慢的搜索工具。
該命令的一般語法是:
$ find /path/to/file/ -iname filename
搜索特定目錄中的文件
[検索]您可以使用該命令查找特定目錄中的所有文件。一般語法是:
$ find /path/to/file/
例如,搜索目錄中的所有文件 /家/錫/下載/ 按目錄,啟動終端 Ctrl + Alt + T 然後在終端中運行以下命令:
$ find /home/tin/Downloads/
在當前目錄中搜索文件
要在當前目錄中查找文件,請使用:
$ find .
要在當前目錄中查找名為“softwares”的文件,請在終端中使用以下命令:
$ find . -iname Softwares
使用通配符搜索
您還可以使用通配符來查找與您的查詢匹配的文件。一般語法是:
$ find /path/to/file/ -iname filename*
例如,要查找以單詞“cent”開頭的文件,請在終端中運行以下命令:
$ find /home/tin/ -iname cent*
搜索空文件
[検索]您還可以使用該命令搜索空文件。一般語法是:
$ find /path/to/file/ -iname -empty
比如找到下面這個空文件 / 家 / 錫 在目錄中,在終端中運行以下命令:
$ find /home/tin/ -empty
按日期和時間搜索
[検索]您還可以使用命令根據訪問或修改文件的時間來搜索文件。您可以使用不同的時間來搜索文件。
- mtime(更改時間): 文件內容最後一次修改的時間。
- atime(訪問時間): 上次訪問文件的時間。
- ctime(更改時間): 上次更改文件屬性的時間。
例如,要在當前目錄中搜索兩天內發生更改的文件,請在終端中運行以下命令:
$ find . -mtime -2
要查找在 2 天內訪問的文件,請在終端中運行以下命令:
$ find . –atime -2
要查找兩天內更改的文件,請在終端中運行以下命令:
$ find . –ctime -2
按文件大小搜索
例如,要搜索大於 5MB 的文件,可以在終端中使用以下命令:
$ find . –size +5M
按文件權限搜索
用於搜索具有特定權限的文件。一般語法是:
$ find /path/to/file/ -type -perm mode
在哪裡:
類型 包含參數 d 還 F 用於指定文件類型的值。 d 有目錄 F 僅歸檔。
模型 它可以是數字(例如 777、655 等)或符號(例如 u = x、a = r + x)。
例如,要查找權限為 644 的文件,可以在終端中使用以下命令:
$ find . –type f –perm 644
方法二:使用定位命令
還有另一個命令 Locate,可用於在 Linux 上檢索文件。它沒有搜索實用程序提供的搜索條件那麼多,但它比搜索實用程序更好更快。其背後的原因是一個後台進程,它實際上在您的系統上運行,搜索新文件並將它們保存在您自己的數據庫中。與搜索命令不同,它不搜索本地硬盤上的文件或目錄,而是在自己的數據庫中搜索。應定期更新數據庫,以使搜索實用程序正常運行。
安裝位置
在 Linux 操作系統上默認不安裝 Locate。必須手動安裝。根據 Ctrl + Alt + T 啟動終端並輸入以下命令 sudo 以安裝 locate 實用程序。
$ sudo apt-get install locate
安裝後,您可以立即使用位置實用程序。
該命令的一般語法是:
$ locate –i filename
這裡,-i 用於忽略大小寫敏感。
搜索文件
例如,要搜索文件名“centos”,請在終端中使用以下命令:
$ locate –i centos
查找文件名中包含字符串“centos”的所有文件。
搜索多個文件
您還可以同時搜索多個文件名。例如,在終端中使用以下命令來查找這兩個文件。 “sdn.txt” 什麼時候”森托斯”:
$ locate –i sdn.txt centos
使用通配符搜索
您還可以使用通配符來查找與您的查詢匹配的文件。例如,要查找所有以“.iso”結尾的文件,請在終端中使用以下命令:
$ locate –i *.iso
更新位置數據庫
Locate 命令取決於數據庫,應定期更新。在終端中運行以下命令以更新 Locate 實用程序數據庫。
$ sudo updatedb
方法三:使用 Grep 命令
grep 用於搜索文本,而不是直接搜索系統中的文件。但是,您可以使用它來顯示包含與您的搜索查詢匹配的特定字符串的文件的名稱。要搜索字符串,必須將字符串括在雙引號中。
該命令的一般語法是:
$ grep [options] [pattern] [/path/to/file]
在哪裡 [options] 參數包括搜索和 [pattern] 包含要搜索的字符串。
如果您正在查找包含特定單詞的文件,並且您懷疑該單詞位於特定目錄之一中,則可以使用上面的命令語法在終端中找到它。
例如,要搜索包含單詞“tintin”的文件,該文件應該是 下載 對於文件夾,您可以使用以下命令找到該文件:
$ grep -r –i “tintin” /home/tin/Downloads
在哪裡
-i 用於忽略大小寫敏感
-r 用於遞歸搜索指定目錄
搜索多個單詞
您還可以同時搜索多個字符串。字符串必須使用字符“”和管道符號“|”。
例如,要搜索“tintin”和“ping”這兩個字符串,可以在終端中使用以下命令:
$ grep –r –I “tintin|ping” /home/tin/Downloads
現在您大致了解瞭如何使用 Ubuntu 命令行搜索文件。本文介紹了三種有用的命令行查找文件的方法。您可以根據搜索速度和條件選擇其中一種方法。