知道指定后綴名的文件總個數(shù)命令:
創(chuàng)新互聯(lián)-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機房租用、成都溫江機房、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),咨詢熱線:18980820575
find
.
-name
*.cpp
|
wc
-l
知道一個目錄下代碼總行數(shù)以及單個文件行數(shù):
find
.
-name
*.h
|
xargs
wc
-l
linux統(tǒng)計文件夾中文件數(shù)目
第一種方法:
ls
-l|grep
“^-”|wc
-l
ls
-l
長列表輸出該目錄下文件信息(注意這里的文件,不同于一般的文件,可能是目錄、鏈接、設(shè)備文件等)。如果ls
-lR|grep
“^-”|wc-l則可以連子目錄下的文件一起統(tǒng)計。
grep
^-
這里將長列表輸出信息過濾一部分,只保留一般文件,如果只保留目錄就是
^d
wc
-l
統(tǒng)計輸出信息的行數(shù),因為已經(jīng)過濾得只剩一般文件了,所以統(tǒng)計結(jié)果就是一般文件信息的行數(shù),又由于一行信息對應(yīng)一個文件,所以也就是文件的個數(shù)。
第二種方法:
find
./
-type
f|wc
-l
由于默認(rèn)find會去子目錄查找,如果只想查找當(dāng)前目錄的文件用
需要說明的是第二種方法會比第一種方法快很多,尤其是也統(tǒng)計子目錄時。
在 Linux 系統(tǒng)使用中,我們經(jīng)常需要查看或統(tǒng)計文本文件中的行數(shù),字?jǐn)?shù),字節(jié)數(shù)等內(nèi)容,那么怎么快捷的統(tǒng)計出文件中這些關(guān)鍵數(shù)據(jù)呢。
在Linux系統(tǒng)中這統(tǒng)計非常方便,只需要簡單的幾個命令就可以搞定,這個命令就是 wc 。
首先我們介紹下 wc 這個命令:
幫助說明中簡介明白的介紹了 wc 的用法,我們來舉例說明下:
1、獲取文件中行數(shù)
2、獲取文件中單詞數(shù)
3、獲取文件中字節(jié)
是不是很簡單呢。
查詢文件的行數(shù)或字?jǐn)?shù)只是個簡單的需求場景,有時候我們其實是要獲取多少匹配關(guān)鍵字的行數(shù),那么這種情況如何實現(xiàn)呢,這種情況我們需要使用另外一個 grep 命令來配置 wc 來完成我們的需求場景。
首先我們看看grep這個命令:
我們通過如下命令方式來實現(xiàn)查詢匹配到關(guān)鍵字'error'中文件行數(shù)。
是不是很簡單,如果希望了解更多,不妨通過 man 命令來查看你想了解的命令吧。
在本教程中,我們將向您展示如何使用多個命令,并使用 ls、egrep、wc 和 find 命令執(zhí)行一些高級操作。 下面的命令將可用在多個方面。
為了實驗,我打算總共創(chuàng)建 7 個文件和 2 個文件夾(5 個常規(guī)文件和 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
統(tǒng)計當(dāng)前目錄的文件(不包括隱藏文件)。 運行以下命令以確定當(dāng)前目錄中有多少個文件,并且不計算點文件(LCTT 譯注:點文件即以“.” 開頭的文件,它們在 Linux 默認(rèn)是隱藏的)。
# ls -l . | egrep -c '^-'
4
細(xì)節(jié):
ls : 列出目錄內(nèi)容
-l : 使用長列表格式
. : 列出有關(guān)文件的信息(默認(rèn)為當(dāng)前目錄)
| : 將一個程序的輸出發(fā)送到另一個程序進(jìn)行進(jìn)一步處理的控制操作符
egrep : 打印符合模式的行
-c : 通用輸出控制
'^-' : 以“-”開頭的行(ls -l 列出長列表時,行首的 “-” 代表普通文件)
示例 2
統(tǒng)計當(dāng)前目錄包含隱藏文件在內(nèi)的文件。 包括當(dāng)前目錄中的點文件。
# ls -la . | egrep -c '^-'
5
示例 3
運行以下命令來計數(shù)當(dāng)前目錄的文件和文件夾。 它會計算所有的文件和目錄。
# ls -l | wc -l
5
細(xì)節(jié):
ls : 列出目錄內(nèi)容
-l : 使用長列表格式
| : 將一個程序的輸出發(fā)送到另一個程序進(jìn)行進(jìn)一步處理的控制操作符
wc : 這是一個統(tǒng)計每個文件的換行符、單詞和字節(jié)數(shù)的命令
-l : 輸出換行符的數(shù)量
統(tǒng)計有多少行用wc命令的-l參數(shù),wc命令可以統(tǒng)計出多少字、行、字符數(shù),它的-l參數(shù)表示僅僅統(tǒng)計出行數(shù)。這個命令一般是和管道符結(jié)合使用,比如想知道一個文件有多少行可以這樣用:
cat /etc/passwd |wc -l
而查看Linux當(dāng)前的所有進(jìn)程用ps aux命令,結(jié)果中一行是一個進(jìn)程,所以,統(tǒng)計Linux系統(tǒng)的進(jìn)程總數(shù)的命令應(yīng)該是:
ps aux | wc -l
在本文中,將展示幾種查找 Linux 目錄中的文件數(shù)量的不同方法。
統(tǒng)計目錄中的文件數(shù)量
統(tǒng)計目錄中文件的最簡單方法是使用ls每行列出一個文件,并將輸出通過管道符傳遞給wc計算數(shù)量:
[root@localhost ~]# ls -1U /etc |wc -l
執(zhí)行上面的 命令 將顯示所有文件的總和,包括目錄和符號鏈接。-1選項表示每行列出一個文件,-U告訴ls不對輸出進(jìn)行排序,這使 命令 的執(zhí)行速度更快。ls -1U命令不計算隱藏文件。如果只想計算文件而不包括目錄,請使用以下命令:
[root@localhost ~]# ls -1Up /etc |grep -v /|wc -l
-p選項強制ls將斜杠(/)指示符附加到目錄。輸出結(jié)果通過管道符傳遞到grep -v命令,排除包含斜杠的行,并計算數(shù)量。
為了更好地控制列出的文件,使用find命令而不是ls:
[root@localhost ~]# find /etc -maxdepth 1 -type f |wc -l
-type f選項告訴find僅列出文件(包括隱藏文件),-maxdepth 1將搜索限制到第一級目錄。
遞歸統(tǒng)計目錄中的文件
如果想要統(tǒng)計目錄中的文件數(shù)量,并包括子目錄中的,可以使用find命令:
[root@localhost ~]# find /etc -type f|wc -l
用來統(tǒng)計文件的另一個命令是tree,它以樹狀格式列出目錄的內(nèi)容:
[root@localhost ~]# yum -y install tree
[root@localhost ~]# tree /root
輸出的內(nèi)容底部會顯示有多少目錄,和多少文件。
總結(jié)
在本文中,將展示幾種查找Linux目錄中的文件數(shù)量的不同方法。