fcp: когда стандартный cp слишком медленный

23 Apr, 2026
851
🔱 25
👥 4

Знакомая ситуация: копируете папку с тысячами файлов или большой видеофайл, а прогрессбар будто застыл на месте? Стандартная утилита cp в Unix-системах, оказывается, может работать гораздо быстрее — и проект fcp это доказал.

Что такое fcp?

fcp — это переписанная на Rust версия классической Unix-утилиты копирования файлов. Автор проекта, Svetlitski, поставил простую цель: сделать копирование файлов максимально быстрым для самых распространённых сценариев использования.

Ключевые особенности:

  • Многопоточность — использует все ядра процессора
  • Оптимизация для SSD — максимально загружает высокоскоростные накопители
  • Поддержка copy-on-write на macOS — мгновенное копирование больших файлов
  • Простота — только базовый функционал без сотен опций

Насколько быстрее?

Цифры впечатляют. Вот результаты тестов с официального репозитория:

На macOS (MacBook Pro 2018):

Реклама
  • Копирование 13 файлов по 512 МБ: в 822 раза быстрее (4.5 мс vs 3.7 с)
  • Копирование исходников ядра Linux: в 6 раз быстрее (5.1 с vs 30 с)

Сравнение скорости копирования больших файлов

На Linux (AWS EC2 a1.metal):

  • Копирование исходников ядра Linux: в 10 раз быстрее (675 мс vs 6.02 с)
  • Копирование 13 файлов по 512 МБ: в 1.4 раза быстрее (8 с vs 11.3 с)

Как это работает?

Секрет скорости fcp — в грамотном использовании возможностей современного железа:

  1. Параллельная обработка — вместо последовательного копирования файлов за один поток, fcp распределяет работу по всем доступным ядрам CPU
  2. Глубокая очередь операций — максимально загружает SSD, увеличивая IOPS (операций ввода-вывода в секунду)
  3. Системные оптимизации — на macOS использует низкоуровневые вызовы fclonefileat и fcopyfile

Когда особенно полезен fcp?

Проект идеально подойдёт:

  • Разработчикам, работающим с большими репозиториями
  • Администраторам, переносящим терабайты данных
  • Всем, кто регулярно копирует много мелких файлов
  • Владельцам MacBook с SSD

Как установить?

Для разных систем есть несколько вариантов:

Через cargo (требуется Rust 1.53+):

cargo install fcp

Готовые бинарники: Доступны в разделах релизов

Для Arch Linux:

yay -S fcp-bin

Для macOS:

brew install fcp

Ограничения

Важно помнить:

  • fcp оптимизирован именно для SSD — на HDD прирост будет меньше
  • Не заменяет cp полностью — поддерживает только базовые сценарии
  • Только для Unix-систем (Linux, macOS и др.)

fcp — отличный пример того, как переосмысление даже такой базовой утилиты, как cp, может дать впечатляющий результат. Если вы регулярно копируете большие объёмы данных, установка fcp сэкономит вам часы ожидания. Проект активно развивается, имеет открытый исходный код и уже собрал почти 800 звёзд на GitHub — определённо стоит попробовать.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.