cpx — более быстрая и современная замена cp в Linux

Как мы все знаем, для копирования файлов в Linux уже давно используется классическая команда cp, которая по-прежнему надёжна, но не обеспечивает обратной связи и ограниченного контроля над длительными или сложными операциями.
Чтобы решить эту проблему, был разработан новый многообещающий инструмент командной строки на основе Rust под названием cpx emerge. Он задуман как альтернатива, а не как замена, и решает ту же задачу, уделяя особое внимание производительности, наглядности и настраиваемости.
Он предназначен для сценариев, в которых большие деревья каталогов, прерванные передачи данных или необходимость в подробных отчётах о ходе работы делают стандартные инструменты менее удобными в использовании. В настоящее время проект доступен только для Linux и использует современные функции ядра для повышения скорости и надёжности копирования.
Тесты, опубликованные проектом показывают, что копирование больших наборов файлов происходит в четыре-пять раз быстрее, чем с помощью cp. Теперь давайте рассмотрим основные характеристики cpx.
- Параллельное копирование файлов:
cpxвыполняет несколько операций копирования одновременно. Пользователи могут контролировать уровень параллелизма, что позволяет инструменту эффективнее использовать быстрое хранилище и многоядерные системы. - Отчёт о ходе выполнения: Инструмент включает встроенные индикаторы выполнения, которые показывают статус копирования в реальном времени. Вывод данных о ходе выполнения можно настроить глобально или для каждого проекта отдельно.
- Возобновляемая передача: Прерванные задания по копированию можно возобновить позже с помощью проверки контрольной суммы, при этом уже скопированные файлы автоматически пропускаются.
- Исключение шаблонов:
cpxподдерживает правила исключения, аналогичные.gitignore, что позволяет пользователям исключать файлы или каталоги, например метаданные системы контроля версий, выходные данные сборки или временные файлы. Исключения можно задать в командной строке или в файлах конфигурации. - Постоянная конфигурация: Значения по умолчанию для поведения при копировании могут храниться в файлах конфигурации на уровне проекта, пользователя или системы. Настройки включают рекурсию, параллелизм, стиль отображения прогресса, использование reflink и сохранение атрибутов.
- Особенности файловой системы Linux: Инструмент поддерживает расширенные атрибуты, сохранение контекста SELinux, временные метки, права собственности, жёсткие ссылки и опциональные обратные ссылки с копированием при записи в поддерживаемых файловых системах.
- Гибкое поведение при копировании:
cpxвключает в себя опции для интерактивного перезаписывания, резервного копирования, обработки символических и жёстких ссылок, копирования только атрибутов, а также детальный контроль над созданием или заменой целевых объектов.
Установка очень проста и выполняется с помощью сценария оболочки. Чтобы начать работу с scp, просто запустите:
curl -fsSL https://raw.githubusercontent.com/11happy/cpx/main/install.sh | bash
Хотя поддержка macOS и Windows указана в дорожной карте проекта, текущая версия предназначена исключительно для Linux. Для получения дополнительной информации посетите страницу инструмента на GitHub.
Редактор: AndreyEx
