cpx — сучасна та швидка альтернатива Linux cp
Копіювання файлів на Linux традиційно покладається на команду cp. Вона надійна, але обмежена через відсутність прогрес-барів, складне відновлення перерваних копій та малу кількість гнучких опцій для великих або складних структур.
Новий інструмент cpx, написаний на Rust, розв’язує ці проблеми. Він швидший і дозволяє контролювати процес копіювання так, як це потрібно користувачу. Особливо це помітно при роботі з великими директоріями.
Нумо ближче роздивлятись всі деталі.
Основні функції та переваги cpx
1. Прискорене паралельне копіювання
cpx використовує паралельні операції копіювання, що дозволяє одночасно обробляти кілька потоків даних. Це значно прискорює копіювання великих директорій порівняно зі стандартним інструментом cp. За офіційними бенчмарками, у певних сценаріях cpx копіює файли у 4-5 разів швидше, ніж стандартна команда cp.
2. Прогрес та зворотний звʼязок у реальному часі
У cpx є сучасні прогрес-бари, які показують %, оцінку часу завершення та стан копіювання прямо у терміналі.
3. Відновлення перерваних копій
Якщо процес копіювання був зупинений (наприклад, через розрив SSH-сесії чи вимкнення живлення), cpx дозволяє продовжити роботу з того місця, де вона була зупинена.
4. Виключення та налаштування шаблонів
cpx підтримує виключення файлів і директорій за патернами, схожими на .gitignore. Це дозволяє не копіювати непотрібні тимчасові або великі артефакти (наприклад, node_modules, .git тощо).
5. Гнучкі налаштування поведінки
Інструмент має конфігураційну систему, яка дозволяє зберігати налаштування на рівні керівника, користувача або системи. Сюди входить рівень паралельності, стиль прогрес-барів, збереження атрибутів файлів, правила виключень та багато іншого.
6. Сучасні Linux-оптимізації
cpx використовує системний виклик copy_file_range, який дозволяє ефективно копіювати файли без зайвих операцій у користувацькому просторі — це один із ключових факторів швидкості. Також підтримуються розширені атрибути файлів, SELinux-контексти та інші метадані, що беззаперечно підходить для складних робочих навантажень.
Як встановити та почати працювати?
Встановлення cpx максимально просте:
curl -fsSL https://raw.githubusercontent.com/11happy/cpx/main/install.sh | bash
або за допомогою Rust cargo:
cargo install cpx
Після інсталяції команда працює дуже схоже на cp, але з розширеним набором опцій:
-r— рекурсивне копіювання директорій;-j N— кількість паралельних копій;--resume— продовжити перерване копіювання;-e— виключення за патернами;--reflink— CoW-копіювання на підтримуваних файлових системах;- Підтримка символічних та жорстких посилань, збереження атрибутів тощо.
На що варто звернути увагу?
cpx залишається молодим проєктом і наразі доступний лише для Linux, тож в умовах проду його варто тестувати обережно. Водночас сам підхід, використання паралельності, сучасних системних викликів і зрозумілого зворотного звʼязку — вже зараз робить його цікавим інструментом для інженерів, які працюють з великими файловими структурами та автоматизованими процесами.
Для тих, хто регулярно виконує копіювання в CI/CD, під час міграцій або резервного копіювання, такі інструменти можуть суттєво вплинути на зручність і час виконання рутинних операцій.
А як це оновлення впливатиме на вашу роботу? Діліться в коментарях.