
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"
현재는 인간의 상호작용을 기다리고 있기 때문에 첫 번째 줄에 멈춰 있는 것 같습니다.
답변1
으로는 ncdu
불가능합니다. 라이브러리를 사용하여 ncurses
대화형 기능으로 결과를 표시하며(예: 옵션 top
과 달리 -b
) 표시되는 내용을 인쇄할 수 있는 직접적인 옵션이 없습니다.
그러나 구문 분석할 수 있거나 stdout으로 json
필요한 모든 정보를 인쇄(또는 파일에 저장)할 수 있습니다 .ncdu -o file.json
ncdu -o-
나는 python
이것을 유사한 출력으로 구문 분석하는 스크립트를 제공했습니다.유닉스SE.