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