Иногда при копировании большого файла, например фильма или образа операционной системы, выполнение команды cp
занимает больше времени, чем ожидалось, в зависимости от нагрузки на вашу систему. Поскольку он не сообщает о ходе операции, становится трудно понять, что именно происходит.
В подобных сценариях команда типа cv
может оказаться очень полезной, поскольку она не только позволяет узнать о ходе операции, но также способна отображать оставшееся время. В этой статье мы обсудим эту команду и приведем несколько полезных примеров.
Введение
Команда cv
— это утилита, которая специально ищет Coreutils базовых команд, таких как cp
, mv
, dd
, tar
, cat
и другие, которые в настоящее время работают в вашей системе и отображают процент их выполнения. Хотя он предназначен только
Contents
Введение
доступен порт для Mac OSX .Загрузить и установить
Чтобы загрузить и установить команду cv
, перейдите к ее Репозиторий на Гитхабе и загрузите исходный пакет (в моем случае имя загруженного файла было «cv-master.zip»).»). После этого извлеките файлы с помощью следующей команды:
unzip cv-master.zip
Войдите в каталог «cv-master» и выполните следующие команды для сборки пакета и установки двоичного файла:
make make install
Обратите внимание, что команда cv
зависит от библиотеки «ncurses», поэтому вам, возможно, придется установить соответствующие пакеты, что можно сд
Загрузить и установить
ду:sudo apt-get install ncurses-dev
Еще один момент, на который стоит обратить внимание: после установки двоичный файл попадает в «/usr/local/bin», поэтому убедитесь, что путь добавлен в вашу системную среду, иначе ваша оболочка не сможет найти команду. когда вы его запустите. Альтернативой может быть изменение текущего каталога на «/usr/local/bin», а затем выполнение команды следующим образом:
./cv
Использование
Вот несколько примеров использования этой команды:
Примечание. Все примеры, представленные в этой статье, протестированы на Ubuntu 14.04.
Простой пример
Поскольку команда cv
отображает ход выполнения других выполняемых команд, должна быть команда, которая выполняется достаточно долго, чтобы команда cv
могла отображать что угодно. Например, я попытался скопировать огромный файл со своего флэш-накопителя на компьютер с Linux, и когда была выполнена команда cp
, я немедленно переключился на другую вкладку оболочки и выполнил следующую команду:
./cv
Команда отобразила следующий результат:
Первое поле выходных данных — это PID отслеживаемой команды, за которым следует команда и ход выполнения в процентах, а также в числах. Стоит отметить, что первая строка в выводе команды cv
(cat inactive/flushing/streaming/...
) является стандартной — я проверил код и обнаружил, что строка печатается при определенных условиях., который, очевидно, всегда попадает в цель (пока мы можем его игнорировать).
Если выполняется более одной команды, команда cv
отображает прогресс, относящийся ко всем из них. Например, вот результат выполнения двух команд:
Использование src="https://saintist.ru/wp-content/uploads/2024/05/cv-default-ouput-multiple-commands.png" alt="cv-default-output-multiple-commands">
Получить расчетную пропускную способность ввода-вывода и расчетное время прибытия
Хотя знать ход выполнения команд
Простой пример
если вы узнаете другую информацию, например оставшееся время или расчетное время прибытия. Для этого командаcv
предлагает параметр командной строки -w
.
Например, при выполнении следующей команды:
./cv -w
был отображен следующий результат:
[ 9287] cp /media/himanshu/F58B-9AA9/casper-rw 10.3% (105.2 MiB / 1 GiB) 27.9 MiB/s eta 0:00:32
Последние два поля в выходных данных, которые представляют расчетную пропускную способность ввода-вывода и расчетное время прибытия, означают, что операция копирования выполняется со скоростью 27,9 МБ в секунду и ее завершение займет 32 секунды.
Зациклить команду
При использовании команды cv
вы заметите, что она показывает детали прогресса на данный момент, а затем завершается. Чтобы гарантировать, что cv
не завершится до тех пор, пока не завершится отслеживаемая команда, используйте параметр -m
.
cv -m
<
Это гарантирует, что команда cv
будет выполняться в цикле, пока отслеживаемые процессы все еще выполняются.
Заключение
Команда cv
может оказаться полезной для тех, кто занимается передачей тяжелых файлов или другими трудоемкими операциями в командной строке Linux. Излишне говорить, что поскольку исходный код открыт, вы можете изменить способ его взаимодействия и работы, внеся изменения в его кодовую базу, которая довольно мала и проста для понимания.
Вы когда-нибудь использовали cv
или любую другую подобную команду? Как прошел ваш опыт? Поделитесь своими мыслями в комментариях ниже.