您是否曾絞盡腦汁想過一種可以計算 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 工具,也有助於查找文件計數。