Рейтинг:1

Как заставить `ncdu` показывать краткую информацию об использовании диска и выйти?

флаг cn

Я хотел бы сделать нкду Инструмент NCurses Disk Usage анализирует путь, отображает вывод и завершает работу для сценариев. Обычно это человеко-интерактивный инструмент, но я хотел бы удалить из него интерактивную часть.

Если я побегу нкду / загрузка я вижу свою /ботинок раздел. Вот что я вижу:

ncdu 1.14.1 ~ Используйте клавиши со стрелками для навигации, нажмите ? за помощью 
--- /ботинок --------------------------------------------- --------
  100,2 МБ [##########] initrd.img-5.13.0-28-универсальный         
  100,2 МБ [######### ] initrd.img-5.13.0-27-универсальный
   11,2 МБ [# ] vmlinuz-5.11.0-46-универсальный
    9,7 МБ [ ] vmlinuz-5.13.0-28-универсальный
    9,7 МБ [ ] vmlinuz-5.13.0-27-универсальный
    9,7 МБ [ ] vmlinuz-5.13.0-25-универсальный
    8,0 МБ [ ] /жратва
    5,7 МБ [ ] System.map-5.13.0-28-generic
    5,7 МБ [ ] System.map-5.13.0-27-generic
    5,7 МБ [ ] System.map-5.13.0-25-generic
    5,6 МБ [ ] System.map-5.11.0-46-generic
  252,0 КиБ [ ] config-5.13.0-28-универсальный
  252,0 КиБ [ ] config-5.13.0-27-универсальный
  252,0 КиБ [ ] config-5.13.0-25-универсальный
  252,0 КиБ [ ] config-5.11.0-46-универсальный
  184,0 КиБ [ ] memtest86+_multiboot.bin
  184,0 КиБ [ ] memtest86+.elf
  180,0 КиБ [ ] memtest86+.bin
! 16,0 КиБ [ ] /потеряно+найдено
! 4,0 КиБ [ ] /efi
@ 0.0 B [ ] initrd.img.old
@ 0.0 B [ ] initrd.img
@ 0,0 Б [ ] vmlinuz.old
@ 0,0 Б [ ] vmlinuz

Теперь, как я могу написать это, чтобы отобразить этот вывод, сохранить его в переменной для последующей печати и выйти?

Я хотел бы что-то вроде этого:

вывод = "$ (ncdu / загрузка)"
эхо "$ вывод"

В настоящее время он висит на первой строке, так как, я думаю, ожидает взаимодействия с человеком.

Дополнительный вопрос: баш: сделать дю показать вывод, аналогичный нкду

pLumo avatar
флаг in
Я предполагаю, что если у `ncdu` нет опций, это невозможно. Он может возвращать строку `json` с `ncdu -o-/boot`
Gabriel Staples avatar
флаг cn
@pLumo, ну, это компьютер. Всегда есть способ. Это может просто потребовать немного сумасшествия. Пример: сделайте скриншот вывода программы, запустите на нем OCR, двигайте мышью, как человек, нажимайте клавиши клавиатуры и т. д. Конечно, это было бы очень неидеальным решением.
Gabriel Staples avatar
флаг cn
Я разместил дополнительный вопрос в конце вопроса.
David avatar
флаг cn
Какое отношение этот вопрос имеет к неустановленной версии Ubuntu, которую вы используете?
Gabriel Staples avatar
флаг cn
@ Дэвид, наверное, ничего. Должен ли я перенести вопрос на [Unix & Linux] (https://unix.stackexchange.com/)? Между прочим, я использую Ubuntu 20.04, но все, что изменится, — это версия `ncdu`, на случай, если она выйдет с новыми параметрами.
Рейтинг:2
флаг in

С нкду, это невозможно. Оно использует проклятия библиотека для отображения результатов с интерактивными функциями и (в отличие, например, от вершина с вариант) у него нет прямой возможности распечатать то, что он отображает.

Однако он может распечатать (или сохранить в файл) json со всей необходимой информацией, которую можно проанализировать: ncdu -o файл.json или на стандартный вывод: нкду -о-.

я предоставил питон script, чтобы разобрать это на аналогичный вывод по адресу Юникс SE.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.