Существует ли способ ограничить количество результатов, возвращенных командой находки в системе Unix?
У нас есть проблемы производительности из-за необычно большого количества файлов в некоторых каталогах.
Я пытаюсь сделать что-то как:
find /some/log -type f -name *.log -exec rm {} ; | limit 5000
Это кажется, что Вы ищете xargs, но еще не знаете это.
find /some/log/dir -type f -name "*.log" | xargs rm
Вы могли попробовать что-то как find [...] |head -[NUMBER]
. Это отправит a SIGPIPE
кому: find
когда head
производит однако много строки так, чтобы find
не продолжает его поиск.
find /some/log -type f -name *.log -exec rm {} ; | limit 5000
Ну, команда, как заключено в кавычки не будет работать, конечно (limit
даже не допустимая команда).
Но если Вы работаете, что-то подобное находке управляют выше, это - вероятно, классическая проблема. У Вас, вероятно, есть проблемы производительности потому что find
выполнения rm
однажды для каждого файла.
Вы хотите использовать xargs
, это может объединить несколько файлов в одну командную строку, таким образом, это вызовет rm
ограниченные времена для многих файлов сразу, который намного быстрее.