一、基礎的使用方法
find [path] [expression]
find命令的基礎使用方法非常簡單,只需要指定我們要查找的目錄以及一些表達式,就可以找到我們需要的文件或目錄。其中,path表示查找的目錄,expression表示我們要指定的一些條件。
例如,我們要查找當前目錄下所有名字為file.txt的文件,可以執行下面的命令:
find . -name 'file.txt'
這裡的.表示當前目錄,-name表示匹配的名稱是file.txt。執行上述命令後,find命令就會在當前目錄下遞歸查找所有名字為file.txt的文件。
二、常用的表達式
-size
-size用於按照文件的大小進行查找。我們可以使用+或-符號來表示大於或小於某個大小。例如,查找當前目錄下大小大於100MB的文件,可以執行下面的命令:
find . -size +100M
輸出的結果將是大小大於100MB的文件列表。
-type
-type用於按照文件類型進行查找。我們使用f
表示文件,d
表示目錄。例如,查找當前目錄下的目錄,可以執行下面的命令:
find . -type d
輸出的結果將是當前目錄下的所有目錄列表。
-mtime
-mtime用於按照文件修改時間進行查找。我們可以使用+或-符號來表示大於或小於某個時間間隔。例如,查找當前目錄下修改時間在30天以內的文件,可以執行下面的命令:
find . -mtime -30
輸出的結果將是當前目錄下修改時間在30天以內的文件列表。
三、高級使用方法
-exec
-exec用於在查找結果上執行某些操作。我們可以在-exec選項後面跟一個需要執行的命令,並且使用{}來表示查找結果。例如,我們要將當前目錄下所有的jpg文件複製到/tmp目錄下,可以執行下面的命令:
find . -name '*.jpg' -exec cp {} /tmp \;
這裡的-exec選項後面跟的是cp命令,{}表示查找結果,最後的\;是必須的,表示-exec選項結束。
-prune
-prune用於排除某些目錄,不進行遞歸查找。例如,我們要查找當前目錄下所有名字為file.txt的文件,但是不要在/tmp目錄下查找,可以執行下面的命令:
find . -path '/tmp' -prune -o -name 'file.txt' -print
這裡的-path選項表示匹配路徑為/tmp的目錄,-prune表示排除/tmp目錄,-o表示or運算符,-print表示輸出結果。
-regex
-regex用於按照正則表達式進行查找。例如,查找當前目錄下以字母a、b或c開始的文件,可以執行下面的命令:
find . -regex './[abc].*'
這裡的-regex選項跟的是正則表達式,以./開頭表示當前目錄。
四、總結
find命令是Linux系統中非常強大的一個命令,可以在我們需要查找文件或目錄時大顯身手。我們可以使用不同的表達式和選項來實現不同的查找需求。掌握基本的使用方法和常用的表達式是非常重要的,高級使用方法可以在特定場景下解決一些很有意思的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/269917.html