Linux 下统计文件夹大小及文件数量

简介:

【查看文件夹大小】

1
2
3
4
5
6
7
8
9
# /lib 目录大小
du  -sh  /lib
 
# /lib 子目录大小
du  -sh  /lib/ *
  
# 查看 /lib 目录下普通文件大小
find  /lib  - type  f -print0 |  xargs  -0  ls  -la | \
awk  -F  ' '  'BEGIN{sum=0} {sum+=$5} END{printf "%d bytes\n", sum}'


【统计文件数量】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 查看 /lib 目录的总文件数(包含7种文件类型、包含 /lib 目录自身)
find  /lib  wc  -l
 
# 查看/lib 目录中普通文件的数量
find  /lib  - type  f |  wc  -l
 
# 用 find、xargs、ls、cut、sort、uniq 等命令组合统计 /usr 目录每种类型的文件数量
# find 的 print0 参数与 xargs -0 参数是为了避免文件名中的特殊字符
# ls 命令带 d 参数是为了不列出目录内容,避免重复统计
find  /usr  -print0 |  xargs  -0  ls  -lad |  cut  -c1 |  sort  uniq  -c
 
# 用 find、xargs、ls、cut、awk 等命令组合统计 /usr 目录每种类型的文件数量
# find 的 print0 参数与 xargs -0 参数是为了避免文件名中的特殊字符
# ls 命令带 d 参数是为了不列出目录内容,避免重复统计
find  /usr  -print0 |  xargs  -0  ls  -lad |  cut  -c1 | \
awk  '{++array[$0]} END{for(key in array){print key, array[key]}}'
 
# 用 rsync 统计 /lib 目录每种类型的文件数量
# 包含 /lib 目录自身
# --dry-run 空转
# ~/fake_dir 一个不存在的假目录
rsync  -a --stats --dry-run  /lib  ~ /fake_dir  grep  "^Number of files:"


【Linux 的7种文件类型】

- 普通文件(Regular file) /etc/passwd /etc/passwd
d 目录(Directory files) /etc /etc
c 字符设备文件(Character device file) /dev/tty /dev/tty
b 块设备文件(Block file,硬盘、CDROM) /dev/sr0 /dev/sr0
s 套接字文件(Socket file) /dev/log /run/nscd/socket
p

管道文件

(Named pipe file or just a pipe file)

/dev/initctl /run/systemd/initctl/fifo
l 符号链接文件(Symbolic link file) /dev/cdrom /dev/cdrom

注:第三列为 CentOS 5.9 下的示例文件,第四列为 Ubuntu 16.04 下的示例文件。

find 关于文件类型 type 的说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ lsb_release -ds
Ubuntu 16.04.2 LTS
$ LESS= "+/^\s+-type c"  man  find
        - type  c
               File is of  type  c:
               b      block (buffered) special
               c      character (unbuffered) special
               d      directory
               p      named pipe (FIFO)
               f      regular  file
               l      symbolic link; this is never  true  if  the -L option or the -follow option 
                      is  in  effect, unless the symbolic link is broken.  
                      If you want to search  for  symbolic links when -L is  in  effect, use -xtype.
               s      socket
               D      door (Solaris)


【相关阅读】

1、海量文件拷贝(Windows/Linux)

2、查看Linux磁盘块大小


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1958412如需转载请自行联系原作者


RQSLT

相关文章
|
9天前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
35 5
|
10天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
28 6
|
10天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
36 6
|
11天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
26 4
|
7天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
27 3
|
7天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
20 2
|
14天前
|
缓存 监控 Linux
|
18天前
|
Linux Shell 数据安全/隐私保护
|
19天前
|
域名解析 网络协议 安全
|
25天前
|
运维 监控 网络协议