Linux统计某天的文件数量,linux ls 统计文件及文件夹数量,以及统计文件夹的大小...

在 linux 中,显示文件的命令为 ls,ls有很多参数,来讲几个常用的。

-a 显示所有文件,包括隐藏文件,以 . 开头的为隐藏文件

-l 显示文件的详细信息,包括,文件类型、权限、文件的属主及属组、文件大小、修改时间,下面来看一个例子

ainy@DESKTOP-8DHJ665:~$ ls -l

total 613484

drwxrwxr-x 2 ainy ainy 0 Aug 25 14:14 linux-3.12.61

-rwxrwxrwx 1 ainy ainy 545024000 Aug 25 11:56 linux-3.12.61.tar

-rw-rw-rw- 1 ainy ainy 80646032 Aug 23 21:26 linux-3.16.37.tar.xz

drwxr-xr-x 2 ainy ainy 0 Aug 25 18:50 nginx-1.10.1

-rw-rw-rw- 1 ainy ainy 909077 Jun 1 00:38 nginx-1.10.1.tar.gz

drwxr-xr-x 2 ainy ainy 0 Aug 25 18:50 pcre-8.38

-rw-rw-rw- 1 ainy ainy 1562265 Aug 25 14:36 pcre-8.38.tar.bz2

drwxrwxrwx 2 ainy ainy 0 Aug 27 11:37 R

ainy@DESKTOP-8DHJ665:~$

其中,第一列,表示了文件的类型以及文件权限,第一例的第一个字母,代表的是文件类型,d 表示是目录,- 表示是文件,l表示是链接文件,坚着后面的9个字母,表示的是文件权限,这个我会在后面继续更新。

第二例,是一个数字,如果是文件的话,自然就是 1 了,若是目录,则是该目录下的文件个数了

第三例,表示文件的属主,表示的是该文件的所有者

第四例,表示文件的属组

第五例,文件的大小,单位为 字节,(至为文件夹的大小为什么为0,这是因为没有统计该文件以下的文件)

第六例,第七例,第八例,第表示文件的创建日志,是 月 日 时间,如:Aug 25 11:56 表示的是 8月25日11点56分创建的文件

第九例,就是文件名,及目录名称了

-F  在目录后面添加 / ,在有执行权限的文件上添加一个 * 号

ainy@DESKTOP-8DHJ665:~$ ls -lF

total 613488

drwxrwxr-x 2 ainy ainy 0 Aug 25 14:14 linux-3.12.61/

-rwxrwxrwx 1 ainy ainy 545024000 Aug 25 11:56 linux-3.12.61.tar*

-rw-rw-rw- 1 ainy ainy 80646032 Aug 23 21:26 linux-3.16.37.tar.xz

drwxr-xr-x 2 ainy ainy 0 Aug 25 18:50 nginx-1.10.1/

-rw-rw-rw- 1 ainy ainy 909077 Jun 1 00:38 nginx-1.10.1.tar.gz

drwxr-xr-x 2 ainy ainy 0 Aug 25 18:50 pcre-8.38/

-rw-rw-rw- 1 ainy ainy 1562265 Aug 25 14:36 pcre-8.38.tar.bz2

drwxrwxrwx 2 ainy ainy 0 Aug 27 12:01 R/

ainy@DESKTOP-8DHJ665:~$

-d 则显示文件的信息,不显示该目录下的文件信息,一般和 -l 结合一起使用

ainy@DESKTOP-8DHJ665:~$ ls -ld linux-3.12.61

drwxrwxr-x 2 ainy ainy 0 Aug 25 14:14 linux-3.12.61

ainy@DESKTOP-8DHJ665:~$

-h 将文个的大小自动换算为 KB 或 MB 或GB,一般也是 -l 一起使用,因为 -l 显示文件的大小信息

ainy@DESKTOP-8DHJ665:~$ ls -lh

total 600M

drwxrwxr-x 2 ainy ainy 0 Aug 25 14:14 linux-3.12.61

-rwxrwxrwx 1 ainy ainy 520M Aug 25 11:56 linux-3.12.61.tar

-rw-rw-rw- 1 ainy ainy 77M Aug 23 21:26 linux-3.16.37.tar.xz

drwxr-xr-x 2 ainy ainy 0 Aug 25 18:50 nginx-1.10.1

-rw-rw-rw- 1 ainy ainy 888K Jun 1 00:38 nginx-1.10.1.tar.gz

drwxr-xr-x 2 ainy ainy 0 Aug 25 18:50 pcre-8.38

-rw-rw-rw- 1 ainy ainy 1.5M Aug 25 14:36 pcre-8.38.tar.bz2

drwxrwxrwx 2 ainy ainy 0 Aug 27 12:01 R

ainy@DESKTOP-8DHJ665:~$

-R 递归显示,即是显示该下的所有文件及文件夹

好了,几个 ls 的参数讲完了,我们来统计一下文件或者文件夹的个数吧

其实统计文件数量,或者文件夹数量,也就是用到了 ls 的递归显示,以及详细信息显示,为什么用详细信息显示呢,因为我们在后面要用 wc 去统计个数,而 -l 的详细信息,一行只输出一个文件或文件夹。

统计文件个数:

ainy@DESKTOP-8DHJ665:~$ pwd

/home/ainy

ainy@DESKTOP-8DHJ665:~$ ls -lR linux-3.12.61 | grep "^d" | wc -l

3550

ainy@DESKTOP-8DHJ665:~$

在这里,先用了递归显示所有文件,然后使用 grep 过滤,过滤以 d 开头的,也就是只显示文件夹,然后再使用 wc -l 统计有多少行,也就是计算出来了,有多少个目录

统计文件个数:

ainy@DESKTOP-8DHJ665:~$ ls -lR linux-3.12.61 | grep "^-" | wc -l

48426

ainy@DESKTOP-8DHJ665:~$

这条命令和上一条命令一样,区别就是过滤显示的那一块不一样,因为前我们介绍过,ls -l 显示文件的详细信息, – 开头的代表是文件

统计文件的大小,使用 du 命令,这个命令与 du 命令还是有些区别的,这个我在后面也会讲到,这里简单的介绍一下 du 命令的统计大小。

du 直接执行,是统计了当前目录下的所有文件,以及当前目录下所有目录的子目录,以及子文件,所以一般统计的时候,也需要指定。

默认情况下,du 命令显示的大小单位为字节,可以使用 -h 参数,使显示单位为 K M G ,以便提高可读性。

ainy@DESKTOP-8DHJ665:~$ du linux-3.12.61.tar pcre-8.38.tar.bz2 nginx-1.10.1.tar.gz

532252 linux-3.12.61.tar

1528 pcre-8.38.tar.bz2

888 nginx-1.10.1.tar.gz

ainy@DESKTOP-8DHJ665:~$

再加上 -h 显示是这样的:

ainy@DESKTOP-8DHJ665:~$ du -h linux-3.12.61.tar pcre-8.38.tar.bz2 nginx-1.10.1.tar.gz

520M linux-3.12.61.tar

1.5M pcre-8.38.tar.bz2

888K nginx-1.10.1.tar.gz

ainy@DESKTOP-8DHJ665:~$

统计整个目录的大小,包括里面的所有文件,显示总大小,不显示单个文件的大小

ainy@DESKTOP-8DHJ665:~$ du -sh linux-3.12.61

862M linux-3.12.61

ainy@DESKTOP-8DHJ665:~$

若要显示目录中每个文件的大小,则直接执行如下命令

du -h linux-3.12.61

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值