Linux常用命令-ncdu

命令

ncdu

描述

NCurses Disk Usage
快速查看文件或目录大小

用法

1
ncdu [options] dir

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Options:
-q 静默模式,每2s刷新一次
-x 相同文件系统,只计算与指定目录位于同一文件系统上的文件和目录
-e 启用扩展信息模式,将读取文件的权限和时间,会增加内存使用率
-r 只读模式
-rr 只读模式,并禁用内部shell
-o FILE 导出目录扫描结果到文件
-f FILE 导入保存的文件
-0,-1,-2 指定信息输出级别,-0表示不显示任何输出(0=none,2=full ncurses)
--si 使用1000次方计算大小(显示单位为KB,MB...)而不是1024(显示单位为KiB, MiB)
--exclude PATTERN 排除匹配的文件或目录,仍会显示文件或目录列表,但不会显示内容,也不会加入统计数据中,可以重复指定该选项进行多次匹配
-X, --exclude-from FILE 排除文件中指定的模式所匹配的文件,可用于多次匹配
-L, --follow-symlinks 遵循符号链接并计算它们指向的文件的大小
--exclude-caches 排除包含在CACHEDIR.TAG规范中的目录,仍会显示文件或目录列表,但不会显示目录内容,也不会加入统计数据中,规范链接http://www.brynosaurus.com/cachedir/
--exclude-kernfs 排除Linux伪文件系统(procfs,sysfs,cgroup,...)
--confirm-quit 退出时需要按q键确认
--color SCHEME 选择配色方案(off/dark)

命令快捷键
? Show help + keys + about screen
up, down j, k 控制上下浏览
right, enter, l 打开目录
left, <, h 返回上一级
n 按文件名排序(再次按可按降序排列)
s 按文件大小排序(再次按可按降序排列)
C 按子文件数量排序(再次按可按降序排列)
a 切换显示占用磁盘大小和文件实际大小
M 按文件修改时间mtime排序,需要添加-e选项
d 删除选中的文件或目录
t 排序时目录在前
g 切换显示效果,百分比,进度条或无.百分比是相对于当前目录的大小,进度条是相对于当前目录中最大的目录大小
c 切换显示子文件数量
m 显示文件修改时间mtime,需要添加-e选项
e 显示或隐藏 隐藏文件或排除目录
i 显示选中的文件详情
r 刷新或重新计算当前目录
b 在当前目录中打开shell,可用于执行系统命令,退出exit
q 退出

文件标志说明
! 读取此目录时出错
. 读取子目录时出错,所以显示的大小可能不准确
< 排除的文件或目录
> 目录位于另一个文件系统上
^ 由于目录是Linux伪文件系统,因此不包括在统计数据中
@ 既不是普通文件也不是目录,如软链接(symlink, socket, ...)
H 硬链接文件(hard link)
e 空目录

注意

需要安装ncdu软件包
推荐仅将ncdu作为目录查看工具,不建议在ncdu内部使用b命令打开shell终端,不建议使用d命令删除文件
官网https://dev.yorhel.nl/ncdu
https://dev.yorhel.nl/ncdu/man

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$ ncdu --version
ncdu 1.16

# 安装ncdu
$ yum install ncdu

$ ncdu
ncdu 1.16 ~ Use the arrow keys to navigate, press ? for help
--- /root -------------------------------------------------
44.0 KiB [########## ] .bash_history
20.0 KiB [#### ] /.local
12.0 KiB [## ] .viminfo
8.0 KiB [# ] /.pki
8.0 KiB [# ] /.ssh
4.0 KiB [ ] .vimrc
4.0 KiB [ ] .lesshst
4.0 KiB [ ] .bashrc
4.0 KiB [ ] .bash_profile
4.0 KiB [ ] .tcshrc
4.0 KiB [ ] .cshrc
4.0 KiB [ ] .bash_logout

# 严格只读模式打开
ncdu -rr
# 排除文件
ncdu --exclude=.bash*
# 排除多个文件
$ cat exclude.txt
.bash*
a*
.vimrc
$ ncdu -X exclude.txt

# 扫描根目录并压缩保存到文件,-1 显示扫描过程, -0 不显示任何输出
ncdu -1xo- / | gzip >export.gz
ncdu -0xo- / | gzip >export.gz
# 读取压缩保存的文件
zcat export.gz | ncdu -f-

# 扫描当前目录保存到文件,并同时读取结果
ncdu -o- | tee export.file | ncdu -f-