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

gcp — расширенная утилита копирования файлов для Linux

Большинство из вас заметили, что команда cp не отображает прогресс копирования при копировании файлов/папок. Когда я копирую большой файл с помощью команды cp, я понятия не имею, сколько времени это займет или каков текущий процент копирования. Кроме того, что я смотрю на мигающий значок курсора в Терминале и индикатор жесткого диска во время копирования больших файлов, я понятия не имею, действительно ли идет процесс копирования или нет. Уже нет! Вот тут-то и придет на помощь утилита gcp. Gcp (Goffi cp) - это усовершенствованный инструмент копирования файлов, созданный на основе традиционной командной утилиты cp. , но с некоторыми дополнительными функциями. Это полностью бесплатное программное обеспечение с открытым исходным кодом, выпущенное под лицензией GNU General Public License.

В отличие от команды cp, утилита gcp предлагает следующие высокоуровневые функции:

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

В этом кратком руководстве я покажу вам, как установить gcp в Linux и Unix-подобных операционных системах.

Установите gcp в Linux

gcp доступен в репозиториях Debian и Ubuntu по умолчанию. Вы можете установить, просто выполнив следующую команду из терминала:

sudo apt-get install gcp

Для Arch Linux и его производных он доступен в AUR. Таким образом, вы можете установить его с помощью любого помощника AUR, например Yay.

yay -S python-gcp-git

Затем установите пакет python-progressbar, который используется для отображения индикатора выполнения при копировании файлов.

yay -S python-progressbar

gcp также доступен в PyPI, вы можете установить его с помощью Менеджера пакетов Pip, как показано ниже:

pip3 install gcp

И, наконец, установите python-progressbar.

Debian/Ubuntu:

sudo apt-get install python-progressbar

Как использовать gcp, расширенное средство копирования файлов, в Linux

Использование gcp практически такое же, как и использование команды cp.

Типичное использование gcp:

gcp [OPTIONS] FILE DEST
gcp [OPTIONS] FILE1 [FILE2...] DEST-DIR

Позвольте мне показать вам несколько практических примеров. Следующая команда скопирует содержимое Dir1 в каталог Dir2.

gcp Dir1/video.mp4 Dir2/

Пример вывода:

Copying 876.53 MiB 100% |############################| 30.08 MB/s Time: 0:00:30

Как вы видите в приведенном выше выводе, команда gcp показывает индикатор хода копирования с указанием примерного времени, текущей скорости файла и т. д. Это позволит нам легко понять, что происходит на самом деле.

Чтобы скопировать несколько файлов, просто укажите их один за другим и целевой каталог, как показано ниже.

gcp file1 file2 Dir

Чтобы скопировать папку в другую папку, используйте флаг -r, как показано ниже.

gcp -r Dir1/ Dir2/

Если вы не хотите видеть индикатор выполнения, вы можете отключить его, используя флаг --no-progress.

gcp --no-progress source destination

Если в целевой папке уже есть такой же файл, вы получите следующее предупреждающее сообщение:

File [/home/sk/Dir2/video.mp4] already exists, skipping it !
/!\ THE FOLLOWING FILES WERE *NOT* SUCCESSFULY COPIED:
 - /home/sk/Dir1/video.mp4
--

Please check journal: /home/sk/.gcp/journal

Вы можете проверить файл журнала, успешно ли завершен предыдущий процесс с файлом.

cat /home/sk/.gcp/journal

Выход:

/home/sk/Dir1/video.mp4
OK:

Если результат ОК, процесс копирования прошел успешно. Если результат ЧАСТИЧНЫЙ, это означает, что файл был скопирован, но что-то пошло не так (например, были изменены разрешения для файла). FAILED означает - файл не был скопирован.

Для получения более подробной информации об утилите gcp выполните следующую команду:

gcp --help

Или обратитесь к справочным страницам.

man gcp

Обновлять :

Индикатор выполнения для команд cp и mv можно легко добавить с помощью патча под названием "Advanced Copy". Для получения подробной информации проверьте следующую ссылку.

Расширенное копирование: добавление индикатора выполнения к командам cp и mv в Linux

Ресурс:

  • Репозиторий gcp Gitea

Рекомендуется к прочтению:

  • Как отслеживать движение данных по каналу с помощью команды «pv»
  • Как быстро передавать большие файлы по сети в Linux и Unix

Статьи по данной тематике