Вы когда -нибудь пробовали сжать огромный файл, немного ждали перед вашим терминалом и задавались вопросом, стоит ли вам приобрести кофе или это будет просто закончить?
Потратив некоторое время на разбор с огромными файлами и попытка выяснить, сколько я продвинулся, я обнаружил, что я решил индустриализовать. Введите Spybar Анкет
Это простой сценарий Python, который вы можете получить с помощью
pip install spybar
Если вы префиксу команду с ней, она запустит ее и отобразит панель прогресса. Вы также можете прикрепить к существующему PID. Все объяснено в readme Анкет
Эта статья, однако, не об использовании инструмента. Это о том, как это работает.
Давайте сначала указать, что он совместим с Linux. Возможно, есть какой -то способ сделать это в других операционных системах, но эта статья не об этом.
В Linux есть специальный каталог, /proc
который содержит каталог для каждого процесса работы.
Предположим, что вы работаете над процессом 42
, вы можете перечислить все файлы, открытые процессом, выполнив
ls -lsh /proc/42/fd
Когда вы открываете файл, в C вы получаете целое число, которое является обработчиком файла. Все эти целые числа перечислены в fd
каталог. Все они являются символическими ссылками на фактический файл, который они открывают. Используя ls
, как только вы найдете нужный файл, вы можете отметить его номер. Предположим, что вы заинтересованы в номере 3
Анкет
Существует другая папка, которая содержит некоторую метаинформацию об этих обработчиках. К которому вы можете просто получить доступ, выполняя
cat /proc/42/fdinfo/3
Вы получите что -то похожее на это:
pos: 569573376 flags: 0104000 mnt_id: 28
В том числе pos
Линия, которая указывает нам, где именно обработчик указывает.
Тогда вам просто нужно знать размер файла, и вы идете, вы знаете как текущую позицию, так и размер файла, это все, что вам нужно для создания панели хода.
После некоторое время я подумал, что напишу этот маленький инструмент, так что мы здесь. Спасибо за чтение!
Оригинал: «https://dev.to/xowap/add-progress-bars-to-any-command-1f58»