如何統計 Linux 中文件和文件夾/目錄的數量 在本教程中,我們將向您展示如何使用多個命令,並使用 ls、egrep、wc 和 find 命令執行一些高級操作。 下麵的命令將可用在多個方面。 為了實驗,我打算總共創建 7 個文件和 2 個文件夾(5 個常規文件和 2 個隱藏文件)。 下麵的 tre ...
如何統計 Linux 中文件和文件夾/目錄的數量
在本教程中,我們將向您展示如何使用多個命令,並使用 ls、egrep、wc 和 find 命令執行一些高級操作。 下麵的命令將可用在多個方面。 為了實驗,我打算總共創建 7 個文件和 2 個文件夾(5 個常規文件和 2 個隱藏文件)。 下麵的 tree 命令的輸出清楚的展示了文件和文件夾列表。# tree -a /opt /opt ├──magi │ └──2g │ ├──test5.txt │ └──.test6.txt ├──test1.txt ├──test2.txt ├──test3.txt ├──.test4.txt └──test.txt 2directories,7files示例 1 統計當前目錄的文件(不包括隱藏文件)。 運行以下命令以確定當前目錄中有多少個文件,並且不計算點文件(LCTT 譯註:點文件即以“.” 開頭的文件,它們在 Linux 預設是隱藏的)。
# ls -l . | egrep -c '^-' 4細節:
- ls : 列出目錄內容
- -l : 使用長列表格式
- . : 列出有關文件的信息(預設為當前目錄)
- | : 將一個程式的輸出發送到另一個程式進行進一步處理的控制操作符
- egrep : 列印符合模式的行
- -c : 通用輸出控制
- '^-' : 以“-”開頭的行(ls -l 列出長列表時,行首的 “-” 代表普通文件)
示例 2
統計當前目錄包含隱藏文件在內的文件。 包括當前目錄中的點文件。# ls -la . | egrep -c '^-' 5示例 3 運行以下命令來計數當前目錄的文件和文件夾。 它會計算所有的文件和目錄。
# ls -l | wc -l 5細節:
- ls : 列出目錄內容
- -l : 使用長列表格式
- | : 將一個程式的輸出發送到另一個程式進行進一步處理的控制操作符
- wc : 這是一個統計每個文件的換行符、單詞和位元組數的命令
- -l : 輸出換行符的數量
示例 4
統計當前目錄包含隱藏文件和目錄在內的文件和文件夾。# ls -la | wc -l 8示例 5 遞歸計算當前目錄的文件,包括隱藏文件。
# find . -type f | wc -l 7細節 :
- find : 搜索目錄結構中的文件
- -type : 文件類型
- f : 常規文件
- wc : 這是一個統計每個文件的換行符、單詞和位元組數的命令
- -l : 輸出換行符的數量
示例 6
使用 tree 命令輸出目錄和文件數(不包括隱藏文件)。# tree | tail -1 2directories,5files示例 7 使用包含隱藏文件的 tree 命令輸出目錄和文件計數。
# tree -a | tail -1 2directories,7files示例 8 運行下麵的命令遞歸計算包含隱藏目錄在內的目錄數。
# find . -type d | wc -l 3示例 9 根據文件擴展名計數文件數量。 這裡我們要計算 .txt 文件。
# find . -name "*.txt" | wc -l 7示例 10 組合使用 echo 命令和 wc 命令統計當前目錄中的所有文件。 4 表示當前目錄中的文件數量。
# echo *.* | wc 1 4 39示例 11 組合使用 echo 命令和 wc 命令來統計當前目錄中的所有目錄。 第二個 1 表示當前目錄中的目錄數量。
# echo */ | wc 1 1 6示例 12 組合使用 echo 命令和 wc 命令來統計當前目錄中的所有文件和目錄。 5 表示當前目錄中的目錄和文件的數量。
# echo * | wc 1544示例 13 統計系統(整個系統)中的文件數。
# find / -type f | wc -l 69769示例-14 統計系統(整個系統)中的文件夾數。
# find / -type d | wc -l 8819示例-15 運行以下命令來計算系統(整個系統)中的文件、文件夾、硬鏈接和符號鏈接數。
# find / -type d -exec echo dirs \; -o -type l -exec echo symlinks \; -o -type f -links +1 -exec echo hardlinks \; -o -type f -exec echo files \; | sort | uniq -c 8779dirs 69343files 20hardlinks 11646symlinks