如何在 Ubuntu 命令行中查找文件


使用計算機時的一個典型問題是找不到存儲在某處的文件。許多 GUI 程序允許您在 Linux 上工作時查找文件,無論其發行版如何。但是,您可能只能訪問命令行終端,尤其是在您管理服務器或使用 SSH 訪問系統時。如果找不到這些文件,則需要使用 Linux 上的命令行程序來查找它們。

本教程將向您展示如何使用終端搜索文件,終端是 Ubuntu 操作系統中的命令行程序。在 shell 中查找文件有三種眾所周知的方法。

  1. 使用搜索文件 尋找 命令
  2. 利用 位置 查找文件的命令
  3. 利用 格拉普 查找文件的命令

Find 和 Locate 命令用於在系統中查找文件,而 grep 用於根據文件包含的文本查找文件。 Find 是一種較慢的方法,但包含多個搜索條件。 Locate 涉及的條件不多,但比 Find 快得多。

讓我們開始這個過程。我們將使用 Ubuntu 20.04 LTS 用於說明本文中描述的步驟。

方法一:使用查找命令

Find 是一個非常靈活的命令,用於根據各種標準查找文件。如果您想在不記得文件名的情況下查找文件,這是一個非常有用的工具。[検索]該命令允許您按文件和文件夾的名稱、創建日期、修改日期和權限進行搜索。您可以在單個搜索命令中組合多個這些條件。這是一個非常強大但速度很慢的搜索工具。

該命令的一般語法是:

$ find /path/to/file/ -iname filename

在特定目錄中查找文件

您可以使用 Find 命令查找特定目錄中的所有文件。一般語法是:

$ find /path/to/file/

例如,查找目錄中的所有文件 /home/錫/下載/ 目錄,按啟動終端 Ctrl+Alt+T 然後在終端中運行以下命令:

$ find /home/tin/Downloads/

在當前目錄中查找文件

要搜索當前目錄中的文件,請使用:

$ find .

在當前目錄中查找文件

要在當前目錄中搜索名為“軟件”的文件,請在終端中使用以下命令:

$ find . -iname Softwares

搜索文件

使用通配符搜索

您還可以使用通配符來查找與您的查詢匹配的文件。一般語法是:

$ find /path/to/file/ -iname filename*

例如,要搜索以單詞“cent”開頭的文件,請在終端中運行以下命令:

$ find /home/tin/ -iname cent*

使用通配符搜索

查找空文件

您還可以使用 find 命令搜索空文件。一般語法是:

$ find /path/to/file/ -iname -empty

例如,在下面找到一個空文件 /首頁/錫 在該目錄中,在終端中運行以下命令:

$ find /home/tin/ -empty

查找空文件

按日期和時間搜索

Find 命令還允許您根據訪問或修改文件的時間來查找文件。可以使用不同的時間來搜索文件。

  • mtime(修改時間): 上次修改文件內容的時間。
  • atime(訪問時間): 上次訪問文件的時間。
  • ctime(更改時間): 上次更改文件屬性的時間。

例如,要在當前目錄中搜索最近兩天修改的文件,請在終端中運行以下命令:

$ find . -mtime -2

按日期和時間搜索

要查找最近兩天訪問的文件,請在終端中運行以下命令:

$ find . –atime -2

按上次訪問時間搜索

要查找在 2 天內修改的文件,請在終端中運行以下命令:

$ find . –ctime -2

按修改時間查找文件

按文件大小搜索

例如,要搜索大於 5MB 的文件,可以在終端中使用以下命令:

$ find . –size +5M

按文件大小搜索

按文件權限搜索

用於查找具有特定權限的文件。一般語法是:

$ find /path/to/file/ -type -perm mode

在哪裡:

類型 參數包括 d債務 用於指定文件類型的值。 d 對於目錄和 債務 僅歸檔。
模型 它可以是數字(例如 777、655 等)或符號(例如 u=x、a=r+x)。

例如,要搜索具有 644 權限的文件,可以在終端中使用以下命令:

$ find . –type f –perm 644

按文件權限搜索

方法二:使用定位命令

您可以使用另一個命令在 Linux 中定位文件,Locate。它沒有搜索實用程序那麼多的搜索條件,但它比搜索實用程序更好更快。背後的原因是實際在您的系統上運行的後台進程,搜索新文件並將它們存儲在自己的數據庫中。 與 Find 命令不同,它在自己的數據庫中搜索,而不是在本地硬盤驅動器上搜索文件和目錄。數據庫必須定期更新,搜索實用程序才能正常運行。

安裝位置

在 Linux 操作系統上默認不安裝 Locate。您必須手動安裝它。根據 Ctrl+Alt+T 啟動終端並輸入以下命令 sudo 以安裝定位實用程序。

$ sudo apt-get install locate

在 Ubuntu 上安裝定位命令

安裝後,您可以立即使用位置實用程序。

該命令的一般語法是:

$ locate –i filename

-i 用於忽略區分大小寫。

搜索文件

例如,要搜索文件名“centos”,請在終端中使用以下命令:

$ locate –i centos

要定位文件,請使用 locate 命令。

查找文件名中包含字符串“centos”的所有文件。

搜索多個文件

您還可以同時搜索多個文件名。例如,在終端中使用以下命令來查找這兩個文件: “sdn.txt” 什麼時候”聖托斯

$ locate –i sdn.txt centos

使用定位查找多個文件

使用通配符搜索

您還可以使用通配符來查找與您的查詢匹配的文件。例如,要查找所有以“.iso”結尾的文件,請在終端中使用以下命令:

$ locate –i *.iso

使用通配符搜索

更新位置數據庫

定位命令依賴於數據庫,應該定期更新。在終端中運行以下命令以更新 Locate 實用程序數據庫。

$ sudo updatedb

更新位置數據庫

方法 3:使用 Grep 命令

但是,Grep 用於搜索文本,而不是直接搜索系統中的文件。但是,您可以使用它來顯示包含與您的搜索查詢匹配的特定字符串的文件的名稱。字符串必須用雙引號括起來才能搜索。

該命令的一般語法是:

$ grep [options] [pattern] [/path/to/file]
在哪裡 [options] 參數包含用於搜索的控件。 [pattern] 包含要搜索的字符串。

如果您正在查找包含特定單詞的文件,並且您認為該單詞可能位於特定目錄中,則可以使用上述命令語法在終端中搜索它。

例如,要搜索包含單詞“tintin”的文件,該文件就是我們的 下載 如果它在文件夾中,您可以使用以下命令查找文件。

$ grep -r –i “tintin” /home/tin/Downloads

使用 grep 命令在文件中查找文本

在哪裡

-i 用於忽略大小寫敏感

-r 用於遞歸搜索指定目錄

搜索多個單詞

您也可以一次搜索多個字符串。字符串必須使用反斜杠“”和管道“|”字符。

例如,要搜索兩個字符串“tintin”和“ping”,您可以在終端中使用以下命令:

$ grep –r –I “tintin|ping” /home/tin/Downloads

搜索多個單詞

這是關於如何在 Ubuntu 中使用命令行查找文件的快速概述。本文介紹了三種有用的用於搜索文件的命令行方法。您可以根據搜索速度和條件選擇其中一種方法。