我想让ncdu
NCurses 磁盘使用工具分析路径、显示输出并退出,以用于脚本目的。通常它是一个人机交互工具,但我想删除它的人机交互部分。
如果我运行,ncdu /boot
我可以看到我的/boot
分区。这是我看到的:
ncdu 1.14.1 ~ Use the arrow keys to navigate, press ? for help
--- /boot -----------------------------------------------------
100.2 MiB [##########] initrd.img-5.13.0-28-generic
100.2 MiB [######### ] initrd.img-5.13.0-27-generic
11.2 MiB [# ] vmlinuz-5.11.0-46-generic
9.7 MiB [ ] vmlinuz-5.13.0-28-generic
9.7 MiB [ ] vmlinuz-5.13.0-27-generic
9.7 MiB [ ] vmlinuz-5.13.0-25-generic
8.0 MiB [ ] /grub
5.7 MiB [ ] System.map-5.13.0-28-generic
5.7 MiB [ ] System.map-5.13.0-27-generic
5.7 MiB [ ] System.map-5.13.0-25-generic
5.6 MiB [ ] System.map-5.11.0-46-generic
252.0 KiB [ ] config-5.13.0-28-generic
252.0 KiB [ ] config-5.13.0-27-generic
252.0 KiB [ ] config-5.13.0-25-generic
252.0 KiB [ ] config-5.11.0-46-generic
184.0 KiB [ ] memtest86+_multiboot.bin
184.0 KiB [ ] memtest86+.elf
180.0 KiB [ ] memtest86+.bin
! 16.0 KiB [ ] /lost+found
! 4.0 KiB [ ] /efi
@ 0.0 B [ ] initrd.img.old
@ 0.0 B [ ] initrd.img
@ 0.0 B [ ] vmlinuz.old
@ 0.0 B [ ] vmlinuz
现在,我如何编写脚本来显示此输出,将其存储到变量中以供以后打印,然后退出?
我想要的是这样的:
output="$(ncdu /boot)"
echo "$output"
目前它挂在第一行,因为我认为它正在等待人类互动。
,
ncdu
这是不可能的。它使用ncurses
库来显示具有交互功能的结果,并且(与top
选项不同-b
)它没有直接选项来打印它显示的内容。但是,它可以打印(或保存到文件) a
json
以及您需要的所有信息,这些信息可以被解析:ncdu -o file.json
或 stdout:ncdu -o-
。我提供了一个脚本来将其解析为Unix SE
python
上的类似输出。