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 数据库
|
22小时前
|
算法 Linux
Linux文件分片、重组
Linux文件分片、重组
|
8天前
|
存储 Linux 数据库
Linux 如何快速查找文件?
Linux 如何快速查找文件?
27 6
|
12天前
|
存储 运维 安全
Linux命令stat:深入了解文件与文件系统状态
`stat`命令在Linux中用于显示文件和文件系统的详细状态,包括权限、大小、时间戳等。它通过读取inode获取信息,特点是显示全面、易用且支持多种参数,如`-c`自定义格式,`-f`查看文件系统状态,`-L`处理符号链接。例如,`stat example.txt`显示文件详情,`stat -c "%n 的大小是 %s 字节" example.txt`输出文件大小。理解`stat`有助于系统管理和故障排查。
|
2月前
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
67 1
|
2月前
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
2月前
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
53 0
|
9月前
26Linux - 文件管理(文件压缩解压:bzip2)
26Linux - 文件管理(文件压缩解压:bzip2)
45 0
|
1月前
|
Linux
14. 【Linux教程】文件压缩与解压
14. 【Linux教程】文件压缩与解压
26 0
|
2月前
|
Java Shell Linux
Linux【脚本 01】简单Shell脚本实现定时备份文件、压缩、删除超时文件操作(showDoc文件备份脚本举例)
Linux【脚本 01】简单Shell脚本实现定时备份文件、压缩、删除超时文件操作(showDoc文件备份脚本举例)
200 0