Как увидеть ход выполнения команд в Linux, если это не предусмотрено

Многие команды Linux, такие как cp, mv, rm и другие, не имеют встроенного механизма или опции для отображения индикатора выполнения. Однако присутствует режим verbose, который может показать подробную информацию о каждом действии, но индикатор выполнения был бы лучше.

Например, команда rsync имеет встроенную возможность отображения индикатора выполнения. Это удобно для таких задач, как синхронизация файлов с локальной и удаленной систем или копирование файлов между каталогами. Когда вы выполняете эти задачи, вы можете использовать команду «rsync» с флагом «–info=progress2», чтобы увидеть индикатор выполнения.

Кроме того, команда dd, которая используется для создания резервных копий, загрузочных USB-устройств, сжатия данных и т. д., имеет встроенную опцию «status=progress» для отображения индикатора выполнения.

Однако для любой другой команды встроенная опция включения индикатора выполнения не предусмотрена. Таким образом, вы можете либо жить надеждой на завершение команды, либо использовать инструмент командной строки, описанный ниже, для отображения индикатора выполнения почти всех команд Linux.

Progress - это инструмент для отображения хода выполнения различных команд, таких как cp, mv, dd, tar, cat, rsync, scp, fg, cut, adb, gzip, gunzip, bzip2, xz, 7z, 7za, zip, unzip и многих других.

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

Debian/Ubuntu

$ sudo apt install progress

Red Hat/Fedora/Rocky Linux/AlmaLinux

$ sudo dnf install progress

Arch Linux

$ sudo pacman -S progress

Void Linux

$ sudo xbps-install progress

По окончании установки вы можете просто выполнить команду без каких-либо опций, чтобы отобразить список поддерживаемых команд, для которых она может предоставить индикатор выполнения.

$ progress

Если мы собираемся выполнять задачи с помощью упомянутых выше команд Linux и хотим отслеживать их выполнение, просто откроем терминал и для отображения индикатора выполнения, добавляем в конец любой поддерживаемой команды, через знак &, команду progress.

$ cp videospecial.mov mnt/ & progress --monitor --pid $!

Опции для команды progress можно посмотреть через команду

$ man progress