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
命令的輸出來對找到的文件執行操作。