Поиск по сайту:

Расширенное копирование — показывает прогресс при копировании файлов в Linux


Advanced-Copy — это мощная программа командной строки, очень похожая, но немного модифицированная версия исходной команды cp и mvtools.

В этой модифицированной версии команды cp добавлен индикатор выполнения и общее время, необходимое для копирования больших файлов из одного места в другое.

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

Установите команду Advanced-Copy в Linux

Единственный способ установить утилиту Advanced-Copy в системах Linux — собрать ее из исходных кодов с помощью следующей единственной команды curl, которая загрузит, исправит, скомпилирует coreutils и сгенерирует файлы: ./advcpmv/advcp и ./advcpmv/advmv.

curl https://raw.githubusercontent.com/jarun/advcpmv/master/install.sh --create-dirs -o ./advcpmv/install.sh && (cd advcpmv && sh install.sh)

В процессе установки вы можете получить следующую ошибку.

checking whether mknod can create fifo without root privileges... configure: error: in `/root/advcpmv/coreutils-9.1':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details

Выполните следующую команду на терминале, чтобы исправить эту ошибку, и снова запустите команду Curl.

export FORCE_UNSAFE_CONFIGURE=1
curl https://raw.githubusercontent.com/jarun/advcpmv/master/install.sh --create-dirs -o ./advcpmv/install.sh && (cd advcpmv && sh install.sh)

После завершения установки создаются две новые команды: ./advcpmv/advcp и ./advcpmv/advmv. Вам необходимо заменить исходные команды cp и mv этими двумя новыми командами, чтобы при копировании файлов появился индикатор выполнения.

mv ./advcpmv/advcp /usr/local/bin/cp
mv ./advcpmv/advmv /usr/local/bin/mv

Примечание. Если вы не хотите копировать эти команды по стандартным системным путям, вы все равно можете запустить их из исходного каталога, например «./advcpmv/advcp» и « ./advcpmv/advmv или создайте новые команды, как показано».

mv ./advcpmv/advcp /usr/local/bin/cpg
mv ./advcpmv/advmv /usr/local/bin/mvg

Показывать индикатор выполнения при копировании файлов и каталогов

Если вы хотите, чтобы индикатор выполнения отображался постоянно при копировании файлов и каталогов, вам необходимо добавить следующие строки в файл ~/.bashrc.

echo alias cp '/usr/local/bin/advcp -g' >> ~/.bashrc
echo alias mv '/usr/local/bin/advmv -g' >> ~/.bashrc

Вам необходимо выйти и войти снова, чтобы это работало правильно.

Как использовать команду Advanced-Copy в Linux

Команда та же самая, единственным изменением является добавление опции «-g» или «-progress-bar» к команде cp. Параметр «-R» предназначен для рекурсивного копирования каталогов.

Копирование файлов с помощью индикатора выполнения

Вот примеры снимков экрана процесса копирования с использованием расширенной команды копирования.

cp -gR ubuntu-20.04.3-desktop-amd64.iso /home/tecmint/
OR
cp -R --progress-bar ubuntu-20.04.3-desktop-amd64.iso /home/tecmint/

Перемещение файлов с помощью индикатора выполнения

Вот пример команды «mv» со снимком экрана.

mv --progress-bar Songs/ /data/
OR
mv -g Songs/ /data/

Помните, что исходные команды не перезаписываются, если вам когда-нибудь понадобится их использовать или если вас не устраивает новый индикатор выполнения и вы хотите вернуться к исходным cp и mv . команды. Вы можете вызвать их через /usr/bin/cp или /usr/bin/mv.

Меня очень впечатлила эта новая функция индикатор выполнения: по крайней мере, я буду знать некоторую информацию о времени операции копирования и о том, что именно происходит.

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