在 Linux 中按名稱查找文件

大多數時候,你在 Linux 中尋找一個文件,你並不知道它在系統磁盤上的真實位置。

有多種方法可以在linux命令行上查找文件. 最常見和可靠的方法是使用搜索命令。

find命令用途極其廣泛,用途廣泛,但這裡我將重點介紹按名稱查找文件。

我將解釋如何使用“查找”命令來:

  • 使用名稱搜索文件
  • 搜索具有確切名稱的文件
  • 文件搜索特定模式
  • 搜索多個文件
  • 從搜索結果中排除某些文件。

除了這些,我還將展示如何將 grep 命令與 find 命令的輸出一起使用。 讓我們首先從概述開始 find 領域。

“查找”實用程序搜索與一組特定參數匹配的文件,例如文件名、修改日期、擴展名等。 它具有以下格式:

                      
                        find path pattern
                      
                    

如果沒有指定路徑,它將搜索當前目錄及其子目錄。

使用名稱搜索文件

通過名稱查找文件是 find 命令的常用操作。 這 -iname 該選項搜索文件而不考慮其大小寫。

例如,假設您有兩個文件 abc.txt 和 ABC.txt。 兩者名稱相同但大小寫不同。 使用搜索命令,您會在結果中獲得這兩個文件:

                      
                        find -iname abc.txt
                      
                    
查找名稱忽略大小寫的文件

使用確切名稱搜索文件

-name 該選項區分大小寫 -iname 選項,因此您將獲得具有確切名稱的文件。

例如,讓我們查找名稱為 abc.txt :

                      
                        find -name abc.txt
                      
                    

文件名可以由通配符組成,您將在本指南後面看到。

搜索具有特定模式的文件

您還可以過濾遵循特定模式的文件。 為此,您可以使用通配符。

例如,假設您要查找系統上所有以“.conf”擴展名結尾的配置文件:

                      
                        find /etc -type f -name "*.conf" | grep client.conf
                      
                    
Buscar archivos con su extensión查找具有特定擴展名的文件

同樣的方法,你也可以搜索具有相同名稱但具有任何擴展名的文件三個字符,如:

                      
                        find ~ -name "abc.???" 
                      
                    
Encuentra archivos con cualquier extensión查找具有相同名稱但任何擴展名的文件

如果你有幾個包含公共字符串的文件名說“VM”,這種情況下的搜索命令將類似於:

                      
                        find -name '*VM*' 
                      
                    
Buscar archivos con un patrón coincidente查找具有匹配模式的文件

到目前為止,我們在“查找”命令中使用了單個目錄(主目錄)。

你也可以搜索多個目錄在 CLI 中指定它們:

                      
                        find ~/Desktop/example1/ ~/Desktop/example2/ -name 'abc*.*'
                      
                    
Buscar archivos en varios directorios在多個目錄中查找文件

搜索多個文件和多個模式

假設你想在一個目錄中查找多個文件 .msi .txt 作為文件類型。

在這裡你必須同時使用 name type CLI 中的選項如:

                      
                        find -type f ( -name "*.txt" -o -name "*.msi" )
                      
                    
Buscar varios archivos搜索多個文件和多個模式

在類似的方法中,您可以擴展上述命令以使用 extra 獲取更多文件 -o 選項

從搜索結果中排除某些文件

搜索命令還可以從搜索結果中排除某些類型的文件:

                      
                        find -name '*abc*' -type f ( ! -name '*.msi' )
                      
                    
Excluir ciertos archivos de los resultados de búsqueda從搜索結果中排除某些文件

此處,“查找”命令將搜索名稱中包含字符串“abc”的所有文件。 但是,它會過濾 .msi 文件類型。

“查找”命令的其他常見示例

它有更多可與“查找”命令一起使用的選項。 讓我分享一些這樣的例子:

系統是否報告磁盤空間不足? 像這樣查找更大的文件:

                      
                        find -size +2000M
                      
                    

使用上面的命令,您可以找到佔用超過 2000 兆字節空間的文件。

如果您需要保存您的發現以供進一步調查,請將它們重定向到一個文件:

                      
                        find -name '*abc*' -type f ( ! -name '*.msi' ) > mysearch.txt
                      
                    
Guardar el resultado del comando de búsqueda保存搜索命令結果

type 帶有搜索命令的選項打開了許多機會。

您可以將它與不同文件類型的不同文件描述符結合起來。 例如,'f' 代表常規文件,'d' 代表目錄,'l' 代表符號鏈接,等等。

                      
                        find /var/log -type f -name "*.log" 
                      
                    

結論

在本指南中,我解釋瞭如何使用 find 命令按名稱搜索文件。 他看到了幾種縮小搜索路徑的方法,最重要的是,如何為模式匹配合併“通配符”。

搜索命令還有更多用途。 因為您可以使用它來查找最近修改的文件。 如果您有興趣,這裡有一些更常見的示例。

您始終可以使用“查找”命令搜索手冊頁以獲取有關各種選項的詳細信息。


相關文章