如何在 Linux 中計算目錄中的文件數

您是否曾絞盡腦汁想過一種可以計算 Linux 中目錄和子目錄中文件數量的方法?

在這個簡短的教程中,我們將看看如何以簡單而準確的方式做到這一點。

1) 使用 wc 命令

WC 命令,縮寫 Word Count 是 Unix/Linux 系統中的命令行工具,用於打印換行符、計算文件中的行數和字符數。 該命令還可以與其他管道操作結合使用以實現一般計數功能。

要計算目錄中的文件數,請使用以下語法

# ls -1 | wc -l

讓我們分解語法,看看有什麼作用

ls : 列出文件
-1 : 這是一個。 它每行打印一個條目。 要打印隱藏文件,請將其更改為 -1a
| : 管道輸出到…
wc : 字數
-l : 計算行數

計算目錄外的文件數,可以指定目錄名如圖

# ls directory_name | wc -l

為了演示這個命令是如何工作的,讓我們創建一個新目錄 測試文件夾,並導航到它。

# mkdir test_folder && cd test_folder

接下來,我們將創建一些用於演示目的的文本文件

# touch file1.txt file2.txt file3.txt file4.txt file5.txt

讓我們通過使用列出它們來確認文件的存在 ls 命令

# ls -l

輸出

太好了,現在讓我們數一下文件

# ls -1 | wc -l

輸出

計算目錄中的文件數

同樣,您可以使用 cd 命令退出目錄

# cd ..

並運行

# ls test_folder | wc -l

輸出

計算目錄中的文件數

2)使用樹命令

tree 是一個 Unix/Linux 命令行工具,它以樹狀格式遞歸打印目錄。 它顯示每個目錄及其中的任何子目錄。 此外,它還可以顯示和打印目錄中的文件數。

導航到我們的示例“test_folder”

cd test_folder

然後,運行 tree 命令

tree

輸出

如您所見,文件的名稱與出現在底部的計數一起列出。 顯然,通過觀察,該計數與之前創建的文件數完全匹配。

4) rsync 命令

我們可以使用 rsync 命令來查找文件、目錄、符號鏈接的數量。

# rsync --stats --dry-run -ax /etc /test

--dry-run 用於不實際傳輸文件。 /test 應該是一個空的或不存在的文件夾。

# rsync --stats --dry-run -ax /etc /test

Number of files: 1,406 (reg: 622, dir: 187, link: 597)
Number of created files: 1,406 (reg: 622, dir: 187, link: 597)
Number of deleted files: 0
Number of regular files transferred: 622
Total file size: 2,341,951 bytes
Total transferred file size: 2,320,656 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 64,184
Total bytes received: 4,429

sent 64,184 bytes received 4,429 bytes 137,226.00 bytes/sec
total size is 2,341,951 speedup is 34.13 (DRY RUN)

3)通過目錄和子目錄遞歸計算文件

使用以下命令通過目錄和子目錄遞歸計算文件

# find DIR_NAME -type f | wc -l

在哪裡:

DIR_NAME 是目錄名

– 類型 f 僅指定文件

廁所 (Word Count) 計算其輸入上的換行符、單詞和字節數

-l 計算新行

如果您正在計算當前目錄中的文件,請用句點替換 DIR_NAME,如圖所示

# find . -type f | wc -l

要在子文件夾中包含其他子文件夾和文件,請省略 - type f 旗幟。

find . | wc -l

我希望這篇文章對您有所幫助,現在您可以輕鬆地計算目錄和子目錄中的文件數量。 另外,試試 ncdu工具 這是一個 GUI 工具,也有助於查找文件計數。