【Shell】用ls和grep统计文件个数|ls 统计行数|统计个数

Linux ls命令

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法

ls [-alrtAFR] [name...]

参数 :

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下之文件亦皆依序列出

运行ls -l命令之后,终端输出的结果是一行一行的字符,每一行字符对应一个目录或者是文件,如果是文件的话,该行的字符串信息的第一个字符显示的是“-”,如果是目录的话,该行的字符的第一个显示的是"d",意即directory,找到这两者之间的区别,运行能够判别第一个字符的命令

统计文件个数

统计当前文件夹下文件的个数,包括子文件夹里的

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

统计文件夹下目录的个数,包括子文件夹里的

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

统计当前文件夹下文件的个数

ls -l |grep "^-"|wc -l
  • 统计当前文件夹下目录的个数

统计某文件夹下文件个数,不包括子文件夹
e.g. 统计/home下.JPEG文件的个数

ls -l "/home" | grep ".jpeg" | wc -l

统计某文件夹下文件个数,包括子文件夹
e.g. 统计/home下,包括子文件夹中,.JPEG文件的个数

ls -lR "/home" | grep ".jpeg" | wc -l

附:

统计输出信息的行数

wc -l

将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

grep "^-"

排序 

  1. ls -lS:按照文件所占的大小从大开始排列
  2. ls -lSr:按文件的大小从小到大来排列
  3. ls -lt:按文件修改的日期从新到旧来排序
  4. ls -lrt:按文件修改的日期从旧到新来排序

注意:-r就是倒序

统计

  1. ls -l|grep ^d|wc -l 10:统计此目录下的文件夹的数量
  2. ls -l|grep ^-|wc -l 2:统计此目录下的文件的数量

原文:

https://blog.csdn.net/qq_36653505/article/details/86480309

https://blog.csdn.net/sumengnan/article/details/109259579

猜你喜欢

转载自blog.csdn.net/bandaoyu/article/details/113757725