Задать вопрос
@johnnywoody

Как перенести большое количество маленьких файлов?

Приветствую!

Ситуация:
Есть папка с большим количеством (более 400 тыс) маленьких файлов.
Максимальный размер файла в папке - около 3 мб, в среднем же "по больнице" - около 100-200 кб на файл.

Два вопроса:
1) Как максимально безболезненно перенести эту папку на внешний hdd?

Стандартные средства системы (Mac OS) захлебываются.
Подсказали такую штуку, как pipe. Нагуглил+составил команду, которая, вроде, должна сделать то, что требуется:
tar cf - "/Volume1/Folder/TargetFolder" | (cd "/Volume2/Folder/" && tar xf -)
(проверьте еще пжлст:)

Но она не показывает на каком этапе какой процесс (их тут 3, вроде как) находится.
Хочу внедрить pv, но не получается. Нужна помощь :)

2) Как разбить папку в 400тыс файлов на несколько папок по 10тыс файлов?

В общем, нужна помощь :)
  • Вопрос задан
  • 427 просмотров
Подписаться 4 Оценить 2 комментария
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Так, если в терминале этот каталог можно посмотреть по ls и он не вывалится с ошибкой, то все еще поправимо.
Ну и для такое операции tar использовать не нужно.
Достаточно просто
cp -va  /Volume1/Folder/TargetFolder/ /Volume2/Folder

да и tar в вашем случае можно сделать проще (все символы-и . имеют значение!!!)
tar -С "/Volume1/Folder/TargetFolder" cf - . | tar -C "/Volume2/Folder" xf -


Ну а разбить на группу файлов можно так
Сначала берем список всех файлов командой
cd /Volume2/Folder
find . > myfiles.txt
split -l 100000 myfiles.txt myfiles.

Получим несколько файлов myfiles.aa myfiles.ab и так далее, по 100000 строк.
далее к каждому файл применяем копирование
cat myfiles.aa | xargs -n 1 -J % mv % /Volume2/Folder1


Проверено на OSX :-)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы