注:本文出自博主 Chloneda:個人博客 | 博客園 | Github | Gitee | 知乎
本文源鏈接:https://www.cnblogs.com/chloneda/p/linux-count-file.html
最近需要統計 Linux 系統中某個文件夾下的文件數目,而Linux 系統下有三個命令:ls、grep、wc。通過這三個命令的組合,可以實現上述要求!
統計當前目錄下文件的個數(不包括目錄)
$ ls -l | grep "^-" | wc -l
遞歸統計當前目錄下文件的個數(包括子目錄)
$ ls -lR| grep "^-" | wc -l
查看某目錄下文件夾的個數(不包括子目錄)
$ ls -l | grep "^d" | wc -l
遞歸查看某目錄下文件夾的個數(包括子目錄)
$ ls -lR | grep "^d" | wc -l
查看某目錄下文件夾和文件的個數(不包括子目錄)
$ ls -l | grep "^[-|d]" | wc -l
遞歸查看某目錄下文件夾和文件的個數(包括子目錄)
$ ls -lR | grep "^[-|d]" | wc -l
參數說明:
- ls -l:長列表輸出該目錄下文件信息,每一行對應一個文件或目錄,ls -lR 是遞歸列出所有文件,包括子目錄。
- grep "^-":過濾ls的輸出信息,一般文件是"-"開頭的,目錄是"d"開頭的。
- wc -l:統計輸出信息的行數,統計結果就是輸出信息的行數,一行信息對應一個文件,所以就是文件的個數。
值得注意的是:Linux文件是有類型的,我們統計的時候,通過正確的命令才能獲得我們想要的結果。在Linux中可以使用以下命令查看文件類型。
ls -l path
在顯示文件的屬性通常會以如下形式進行顯示:
drwxr-xr-x
- 第1個字母:代表文件類型
- 第2~4字母:代表用戶的權限
- 第5~7字母:代表用戶組的權限
- 第8~10字母:代表其他的用戶的權限
在Linux常見的文件類型有7種,分別如下所示:
| 文件屬性 | 文件類型 |
|---|---|
| - | 常規文件,即file |
| d | 目錄文件 |
| b | block device 即塊設備文件,如硬盤;支持以block為單位進行隨機訪問 |
| c | character device 即字符設備文件,如鍵盤支持以character為單位進行線性訪問 |
| l | symbolic link 即符號鏈接文件,又稱軟鏈接文件 |
| p | pipe 即命名管道文件 |
| s | socket 即套接字文件,用於實現兩個進程進行通信 |
以上信息靈活運用,可以正確幫助大家獲得自己想要的統計結果!
