如何統(tǒng)計(jì)Linux中文件和文件夾/目錄的數(shù)量
嗨,伙計(jì)們,今天我們?cè)俅螏?lái)一系列可以多方面幫助到你的復(fù)雜的命令。 通過(guò)操作命令,可以幫助您計(jì)數(shù)當(dāng)前目錄中的文件和目錄、遞歸計(jì)數(shù),統(tǒng)計(jì)特定用戶創(chuàng)建的文件列表等。
在本教程中,我們將向您展示如何使用多個(gè)命令,并使用 ls、egrep、wc 和 find 命令執(zhí)行一些高級(jí)操作。 下面的命令將可用在多個(gè)方面。
為了實(shí)驗(yàn),我打算總共創(chuàng)建 7 個(gè)文件和 2 個(gè)文件夾(5 個(gè)常規(guī)文件和 2 個(gè)隱藏文件)。 下面的 tree 命令的輸出清楚的展示了文件和文件夾列表。
# tree -a /opt/opt├── magi│ └── 2g│ ├── test5.txt│ └── .test6.txt├── test1.txt├── test2.txt├── test3.txt├── .test4.txt└── test.txt2 directories, 7 files
示例-1
統(tǒng)計(jì)當(dāng)前目錄的文件(不包括隱藏文件)。 運(yùn)行以下命令以確定當(dāng)前目錄中有多少個(gè)文件,并且不計(jì)算點(diǎn)文件(LCTT 譯注:點(diǎn)文件即以“.” 開(kāi)頭的文件,它們?cè)?Linux 默認(rèn)是隱藏的)。
# ls -l . | egrep -c '^-'4
細(xì)節(jié):
ls: 列出目錄內(nèi)容-l: 使用長(zhǎng)列表格式.: 列出有關(guān)文件的信息(默認(rèn)為當(dāng)前目錄)|: 將一個(gè)程序的輸出發(fā)送到另一個(gè)程序進(jìn)行進(jìn)一步處理的控制操作符egrep: 打印符合模式的行-c: 通用輸出控制'^-': 以“-”開(kāi)頭的行(ls -l列出長(zhǎng)列表時(shí),行首的 “-” 代表普通文件)
示例-2
統(tǒng)計(jì)當(dāng)前目錄包含隱藏文件在內(nèi)的文件。 包括當(dāng)前目錄中的點(diǎn)文件。
# ls -la . | egrep -c '^-'5
示例-3
運(yùn)行以下命令來(lái)計(jì)數(shù)當(dāng)前目錄的文件和文件夾。 它會(huì)計(jì)算所有的文件和目錄。
# ls -l | wc -l5
細(xì)節(jié):
ls: 列出目錄內(nèi)容-l: 使用長(zhǎng)列表格式|: 將一個(gè)程序的輸出發(fā)送到另一個(gè)程序進(jìn)行進(jìn)一步處理的控制操作符wc: 這是一個(gè)統(tǒng)計(jì)每個(gè)文件的換行符、單詞和字節(jié)數(shù)的命令-l: 輸出換行符的數(shù)量
示例-4
統(tǒng)計(jì)當(dāng)前目錄包含隱藏文件和目錄在內(nèi)的文件和文件夾。
# ls -la | wc -l8
示例-5
遞歸計(jì)算當(dāng)前目錄的文件,包括隱藏文件。
# find . -type f | wc -l7
細(xì)節(jié) :
find: 搜索目錄結(jié)構(gòu)中的文件-type: 文件類(lèi)型f: 常規(guī)文件wc: 這是一個(gè)統(tǒng)計(jì)每個(gè)文件的換行符、單詞和字節(jié)數(shù)的命令-l: 輸出換行符的數(shù)量
示例-6
使用 tree 命令輸出目錄和文件數(shù)(不包括隱藏文件)。
# tree | tail -12 directories, 5 files
示例-7
使用包含隱藏文件的 tree 命令輸出目錄和文件計(jì)數(shù)。
# tree -a | tail -12 directories, 7 files
示例-8
運(yùn)行下面的命令遞歸計(jì)算包含隱藏目錄在內(nèi)的目錄數(shù)。
# find . -type d | wc -l3
示例-9
根據(jù)文件擴(kuò)展名計(jì)數(shù)文件數(shù)量。 這里我們要計(jì)算 .txt 文件。
# find . -name "*.txt" | wc -l7
示例-10
組合使用 echo 命令和 wc 命令統(tǒng)計(jì)當(dāng)前目錄中的所有文件。 4 表示當(dāng)前目錄中的文件數(shù)量。
# echo *.* | wc1 4 39
示例-11
組合使用 echo 命令和 wc 命令來(lái)統(tǒng)計(jì)當(dāng)前目錄中的所有目錄。 第二個(gè) 1 表示當(dāng)前目錄中的目錄數(shù)量。
# echo */ | wc1 1 6
示例-12
組合使用 echo 命令和 wc 命令來(lái)統(tǒng)計(jì)當(dāng)前目錄中的所有文件和目錄。 5 表示當(dāng)前目錄中的目錄和文件的數(shù)量。
# echo * | wc1 5 44
示例-13
統(tǒng)計(jì)系統(tǒng)(整個(gè)系統(tǒng))中的文件數(shù)。
# find / -type f | wc -l69769
示例-14
統(tǒng)計(jì)系統(tǒng)(整個(gè)系統(tǒng))中的文件夾數(shù)。
# find / -type d | wc -l8819
示例-15
運(yùn)行以下命令來(lái)計(jì)算系統(tǒng)(整個(gè)系統(tǒng))中的文件、文件夾、硬鏈接和符號(hào)鏈接數(shù)。
# 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 -c8779 dirs69343 files20 hardlinks11646 symlinks




























