Linux教程 | 如何從 Linux 命令行搜索文件
使用 GUI 時(shí),搜索文件相對(duì)容易。但在某些環(huán)境(如無(wú) GUI 服務(wù)器)中,您需要使用命令行搜索文件。
Linux中有一個(gè)功能強(qiáng)大的命令,可以幫助您搜索名為 的文件和文件夾。在本文中,我們將通過(guò)一些示例來(lái)討論該命令。find
find
Linux 中的 find 命令是什么?
該命令可讓您有效地搜索文件、文件夾以及字符和塊設(shè)備。find
以下是該命令的基本語(yǔ)法:find
find /path/ -type f -name file-to-search
哪里
/path
是預(yù)期找到文件的路徑。這是搜索文件的起點(diǎn)。路徑也可以分別表示根目錄和當(dāng)前目錄。/
.
-type
表示文件描述符。它們可以是以下任何一種:
f
–?常規(guī)文件, 如文本文件, 圖像和隱藏文件.
d
–?目錄.這些是正在考慮的文件夾。
l
–?符號(hào)鏈接。符號(hào)鏈接指向文件,類似于快捷方式。
c
–?字符設(shè)備.用于訪問(wèn)字符設(shè)備的文件稱為字符設(shè)備文件。驅(qū)動(dòng)程序通過(guò)發(fā)送和接收單個(gè)字符(字節(jié)、八位字節(jié))與字符設(shè)備進(jìn)行通信。示例包括鍵盤(pán)、聲卡和鼠標(biāo)。
b
–?阻止設(shè)備.用于訪問(wèn)塊設(shè)備的文件稱為塊設(shè)備文件。驅(qū)動(dòng)程序通過(guò)發(fā)送和接收整個(gè)數(shù)據(jù)塊與塊設(shè)備進(jìn)行通信。示例包括 USB、光盤(pán)
-name
是要搜索的文件類型的名稱。
查找命令的示例
現(xiàn)在我們知道了命令的語(yǔ)法,讓我們看一些例子。find
如何按名稱或擴(kuò)展名搜索文件
假設(shè)我們需要找到名稱中包含“style”的文件。我們將使用此命令:
find . -type f -name style*
輸出
現(xiàn)在,假設(shè)我們要查找具有特定擴(kuò)展名的文件,例如 .我們將修改命令,如下所示:.html
find . -type f -name *.html
輸出
如何搜索隱藏文件
隱藏文件由文件名開(kāi)頭的點(diǎn)表示。它們通常是隱藏的,但可以在當(dāng)前目錄中查看。ls -a
我們可以修改如下所示的命令以搜索隱藏文件。find
find . -type f -name ".*"
輸出
如何搜索日志文件和配置文件
日志文件通常具有 擴(kuò)展名 ,我們可以像這樣找到它們:.log
find . -type f -name "*.log"
輸出
同樣,我們可以搜索如下配置文件:
find . -type f -name "*.conf"
如何按類型搜索其他文件
我們可以通過(guò)提供以下命令來(lái)搜索字符塊文件:c
-type
find / -type c
同樣,可以使用以下命令找到設(shè)備塊文件:b
find / -type b
如何搜索目錄
在下面的示例中,我們找到了名為 .請(qǐng)注意,我們使用的是 .lib
-type d
find . -type d -name "lib*"
輸出
?? 提示:我們可以通過(guò)查看 輸出中的標(biāo)志來(lái)識(shí)別目錄。d
ls -lrt
如何按大小搜索文件
該命令的一個(gè)非常有用的用法是根據(jù)特定大小列出文件。find
其他單位包括:
G
:千兆字節(jié)。M
:兆字節(jié)。K
: 千字節(jié)b
:字節(jié)。
只需將<單位類型>替換為相關(guān)單位即可。
find <directory> -type f -size +N<Unit Type>
如何按修改時(shí)間搜索文件
find /path -name "*.txt" -mtime -10
- -mtime +10?表示您正在尋找 10 天前修改的文件。
- -mtime -10?表示少于 10 天。
- -mtime 10?如果您跳過(guò)+ 或 - 這意味著正好10天。
以下是我的主目錄的內(nèi)容:
讓我們?cè)谖业闹髂夸浿袘?yīng)用一個(gè)示例。
find . -type f -name ".*" -mtime +10
使用 bash 腳本的實(shí)際示例find
我們可以與可以自動(dòng)化的有意義的bash腳本組合或創(chuàng)建有意義的bash腳本。find
rm
mv
假設(shè)我們要?jiǎng)?chuàng)建一個(gè)腳本,將超過(guò) 7 天的日志文件移動(dòng)到備份路徑。從那里,它會(huì)刪除早于 30 天的日志文件。我們可以創(chuàng)建一個(gè)腳本,并使用 .您可以在此處了解有關(guān)工作的更多信息。cron
cron
讓我們看一下腳本:
#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*
# move ESB01 logs to backup
find /logs/esb01/audit -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;
# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30 -exec rm {} \;
請(qǐng)注意,我們正在與 一起使用。基本上,執(zhí)行提供的命令(在我們的例子中)。 是保存命令結(jié)果的占位符。最后,我們提供 分隔符 。由于我們不希望 shell 解釋分號(hào),因此我們用 .exec
find
exec
mv
rm
{}
;
\
共享腳本在存檔和刪除日志時(shí)非常有用。