Как ограничить Unix, находят, что количество результатов обрабатывает каталоги со многими файлами

Существует ли способ ограничить количество результатов, возвращенных командой находки в системе Unix?

У нас есть проблемы производительности из-за необычно большого количества файлов в некоторых каталогах.

Я пытаюсь сделать что-то как:

find /some/log -type f -name *.log -exec rm {} ; | limit 5000
8
задан 20.11.2019, 22:05

3 ответа

Это кажется, что Вы ищете xargs, но еще не знаете это.

find /some/log/dir -type f -name "*.log" | xargs rm
5
ответ дан 07.12.2019, 13:44

Вы могли попробовать что-то как find [...] |head -[NUMBER]. Это отправит a SIGPIPE кому: find когда head производит однако много строки так, чтобы find не продолжает его поиск.

22
ответ дан 07.12.2019, 13:44
find /some/log -type f -name *.log -exec rm {} ; | limit 5000

Ну, команда, как заключено в кавычки не будет работать, конечно (limit даже не допустимая команда).

Но если Вы работаете, что-то подобное находке управляют выше, это - вероятно, классическая проблема. У Вас, вероятно, есть проблемы производительности потому что find выполнения rm однажды для каждого файла.

Вы хотите использовать xargs, это может объединить несколько файлов в одну командную строку, таким образом, это вызовет rm ограниченные времена для многих файлов сразу, который намного быстрее.

0
ответ дан 07.12.2019, 13:44

Теги

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