Linux上統計文件夾下文件個數以及目錄個數


對於linux終端用戶而言,統計文件夾下文件的多少是經常要做的操作,於我而言,我會經常在谷歌搜索一個命令,“如何在linux統計文件夾的個數”,然后點擊自己想要的答案,但是有時候不知道統計文件夾命令運行的機理,今天花了兩個小時看了一下鳥哥的linux私房菜,看到了管道命令,以及正則化,所以也不難理解如何統計linux下文件夾下文件的個數

以下知識點包括管道命令,正則表達式

1.統計文件夾下文件的個數

可以試着在終端運行ls -l,可以達到如下結果

可以看出,運行ls -l命令之后,終端輸出的結果是一行一行的字符,每一行字符對應一個目錄或者是文件

管道命令的形式是“命令1 | 命令2”,其中命令2是管道命令

管道命令要操作的對象就是這樣的一行一行的字符串,實際上就是一行一行的文本信息

管道命令可以是查找字符串的grep命令,也可以sort這樣的排序命令,也可以是wc這樣的統計命令,anyway,無論是查找還是排序,抑或是統計,他們操作的對象是一個命令輸出的一行一行字符串

所以,如果運行ls -l會輸出當前目錄下的文件以及目錄的信息。那么只要在當前目錄下的輸出結果中,統計出是文件的行的數目,就可以統計出當前目錄下的文件個數

所以要找出命令ls -l輸出的文件的信息與目錄的信息的不同之處

不難看出,如果是文件的話,該行的字符串信息的第一個字符顯示的是“-”,如果是目錄的話,該行的字符的第一個顯示的是"d",意即directory,找到這兩者之間的區別,運行能夠判別第一個字符的命令

 

ls -l | grep "^-"

其中“^-”是一個正則化項,表示字符串的第一個字符,

運行結果

那么接下來只要對管道命令運行的結果統計行號即可

即運行兩次管道命令,即ls -l | grep “^-” | wc -l

結果如下

2.統計文件夾下目錄的個數

同樣的,利用第一個字符的區別,只需要將命令ls -l | grep “^-” | wc -l修改成ls -l | grep “^d” | wc -l

即可,如下

3.統計文件夾下文件個數,包括子文件

ls -lR | grep "^-"| wc -l

4.統計文件夾下目錄個數,包括子目錄

ls -lR | grep "^d"| wc -l

管道命令與正則化有很大的用處,這里先給自己挖個坑,后期繼續補充


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM