`ncdu` でディスク使用量の簡単な概要を表示して終了するにはどうすればよいですか?

`ncdu` でディスク使用量の簡単な概要を表示して終了するにはどうすればよいですか?

スクリプト作成の目的で、NCurses ディスク使用量ツールにパスを分析し、出力を表示して終了させたいと思いますncdu。通常は人間と対話するツールですが、人間と対話する部分を削除したいと思います。

実行するとパーティション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"

現在は、人間の操作を待っているため、最初の行でハングしていると思います。

追加の質問:bash: dushow出力を次のようにするncdu

答え1

ではncdu、それは不可能です。はncurses、インタラクティブな機能を使用して結果を表示するためにライブラリを使用し、(たとえばオプションtopの場合とは異なり-b) 表示内容を印刷する直接的なオプションはありません。

jsonただし、解析可能な必要なすべての情報を含む を印刷 (またはファイルに保存) したり、 ncdu -o file.jsonstdout に出力したりすることはできますncdu -o-

私はpythonこれを解析して同様の出力を得るためのスクリプトを提供しました。Unix SE

答え2

ncdu ウェブページ下部に類似のプロジェクトがリストされており、そのうちの1つはtdu「ディスク使用量トップ」は、テキスト要約(最大のネストされたファイルを含む)を非対話形式で表示して終了します。グドゥncurses インターフェースと非対話型終了の両方が組み込まれています。

関連情報