Задать вопрос
@Romo4ka_eto_ia
Просто человек

Как сделать find быстрее?

Требуется найти все json файлы в каталогах и запаковать их в архив. Таковых около 100 тысяч.
Сейчас всё это работает через команду:
find /var/lib/pterodactyl/volumes/ -regex '.*\(.json\)' -size -200000k -exec tar -rvf /back.tar {} \;

Но это делается очень медленно, примерно 1 файл в секунду, уже 2 дня жду, а оно всё пакуется, есть ли способ всё это ускорить?
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Я бы задачу разбил на два этапа - сначала собираете find`ом все пути к файлам, потом натравливаете на получившийся список архиватор. И зачем -regex, который наверняка даёт оверхед, если можно просто искать по маске?
Ответ написан
shambler81
@shambler81 Куратор тега Linux
вместо execиспользуйте xargs- профит раз в 200.
В 200 раз вас устроит ускорение ?
Ответ написан
Комментировать
@HighMan
find /var/lib/pterodactyl/volumes/ -type f - name '*.json' --size -200000k -exec tar -rvf /back.tar {} \;
Возможно так быстрее будет
Ответ написан
Ваш ответ на вопрос

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

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