xargs — Частин https://chast.in Свободной памяти нет - приходится записывать Thu, 15 Jan 2015 07:32:20 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.6.2 Удаление большого числа файлов в linux https://chast.in/remove-more-more-files-linux.html https://chast.in/remove-more-more-files-linux.html#comments Thu, 15 Jan 2015 06:58:31 +0000 http://chast.in/?p=544

Иногда при попытке удалить файлы сессий sess_, *.tmp или *.cache rm валится с сообщением о слишком большом количестве файлов:

bash: /bin/rm: Argument list too long

Чтобы избежать появления ошибки, проще всего использовать find:

# find /var/www/username/data/www/ -name "*.cache" -delete

Многие рекомендуют использовать xargs, вот таким образом:

# find /var/www/user/data/www/ -name "*.cache" | xargs rm

Однако, при действительно большом количестве файлов xargs сам сообщает об ошибке:
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option

Если вам так нравится xargs (многие пытливые умы с просторов интернет сообщают, что он в связке с rm работает быстрее), то можно использовать его с аргументом -0 opinon, чуть изменив синтаксис, например:

# find /tmp -name "sess*" -print0 | xargs -0 /bin/rm

]]>
https://chast.in/remove-more-more-files-linux.html/feed 1