Linux:使用Find命令搜索文件
Linux中的find命令是一個強大的工具,它允許您基於各種參數在給定目錄層次結構中搜索文件和目錄。在本教程中,我們將探討如何使用find命令及其各種選項。
基本語法
find命令的基本語法如下:
find [目錄] [表達式]這裏,[目錄]是您要在其中搜索文件的目錄,[表達式]是您要應用的搜索條件。find命令將在給定的[目錄]及其子目錄中搜索與指定的[表達式]匹配的文件和目錄。
find命令的輸出是與指定搜索條件匹配的文件和目錄列表。例如,如果運行以下命令:
find . -name "*.txt"您將獲得當前目錄及其子目錄中所有具有.txt擴展名的文件列表:
./example.txt
./example2.txt
./subdir/example3.txt通過文件名查找文件
要通過文件名查找文件,請使用 -name 選項,後跟您要查找的文件名。例如,要在當前目錄及其子目錄中搜索名爲 example.txt 的文件,請使用以下命令:
find . -name "example.txt"這將在當前目錄及其子目錄中搜索所有名爲 "example.txt" 的文件。
要搜索具有特定擴展名的所有文件,請使用 -name 選項,後跟通配符字符 * 和您要查找的擴展名。例如,要在當前目錄及其子目錄中搜索所有具有 .txt 擴展名的文件,請使用以下命令:
find . -name "*.txt"這將在當前目錄及其子目錄中搜索所有具有 .txt 擴展名的文件。
實際上,通配符字符 * 可以在文件名的任何部分中使用。例如:
find . -name "example*"
find . -name "*example.txt"
find . -name "*example.*"查找目錄
要在當前目錄及其子目錄中搜索所有目錄,請使用 -type 選項後跟 d。例如,要搜索當前目錄及其子目錄中的所有目錄,請使用以下命令:
find . -type d這將在當前目錄及其子目錄中搜索所有目錄。
按修改時間查找文件
要搜索在特定時間範圍內修改的所有文件,請使用 -mtime 選項後跟天數。如果要搜索在過去 n 天內修改的文件,請使用負數 -n。
例如,要搜索在過去 7 天內修改的所有文件,請使用以下命令:
find . -mtime -7
find . -mtime -1w-mtime 選項的默認時間單位爲天。
您可以在 macOS 上使用其他時間單位:
s- 秒m- 分鐘h- 小時d- 天w- 周
您還可以使用
-atime和-ctime選項根據文件的訪問時間和創建時間搜索文件。
按文件大小查找文件
要搜索所有大於特定大小的文件,請使用 -size 選項,後跟帶有 + 符號的字節數大小。要搜索所有小於特定大小的文件,請使用 -size 選項,後跟帶有 - 符號的字節數大小。
例如,要在當前目錄及其子目錄中搜索所有大於 10MB 的文件,請使用以下命令:
find . -size +10M這將在當前目錄及其子目錄中搜索所有大於 10MB 的文件。
您可以使用的常見大小單位是:
c- 字節k- 千字節(1024 字節)M- 兆字節(1024 千字節)G- 吉字節(1024 兆字節)T- 太字節(1024 吉字節)P- 拍字節(1024 太字節)
組合搜索條件
您可以組合多個搜索條件以查找符合特定條件的文件。例如,要搜索在過去 7 天內修改的具有特定擴展名的所有文件,請使用以下命令:
find . -name "*.txt" -type f -mtime -7這將在當前目錄及其子目錄中搜索所有在過去 7 天內修改的具有 .txt 擴展名的文件。
使用 find 命令的輸出
您可以以各種方式使用 find 命令的輸出。以下是一些示例:
要將 find 命令的輸出保存到文件中,請使用以下命令:
find . -name "*.txt" > files.txt這將把所有擴展名爲 .txt 的文件名保存到名爲 files.txt 的文件中。
要將 find 命令的輸出用作另一個命令的輸入,請使用 xargs 命令。
例如,要刪除具有特定擴展名的所有文件,請使用以下命令:
find . -name "*.txt" -type f | xargs rm要對 find 命令找到的每個文件執行操作,請使用 -exec 選項。
例如,要更改具有特定擴展名的所有文件的權限,請使用以下命令:
find . -name "*.txt" -type f -exec chmod 644 {} \;-exec 參數的語法是:
-exec command {} \;command是您要在 find 找到的文件上執行的命令。{}是一個佔位符,將被 find 找到的文件的名稱替換。\;用於終止命令並表示-exec參數的結束。 使用wc命令來計算find命令找到的文件數量。例如,要計算具有特定擴展名的文件數量,請使用以下命令:
find . -name "*.txt" -type f | wc -l結論
Linux 中的 find 命令是一個強大的工具,它允許您根據各種條件搜索文件和目錄。通過使用其各種選項和組合搜索條件,您可以快速找到所需的文件和目錄。您還可以以各種方式使用 find 命令的輸出來對找到的文件執行操作。
