TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #550 932
find + -exec vs xargs: где удобнее, где безопаснее

Когда нужно выполнить команду для большого количества файлов, чаще всего используют два подхода: find ... -exec или find ... | xargs. Они решают одну задачу, но ведут себя по-разному.

▪️ find -exec - простой и безопасный. Пример: удалить .log файлы старше 7 дней


find /var/log -type f -name "*.log" -mtime +7 -exec rm {} \;


{} - подставляет найденный файл.
\; - завершает команду.

Плюсы: безопасно работает с пробелами, не ломается на спецсимволах и не требует пайпа
Но есть нюанс: команда запускается для каждого файла.

▪️ Ускоренный вариант -exec. Можно запускать команду пакетами:


find /var/log -type f -name "*.log" -exec rm {} +


Теперь rm получит много файлов за раз. По скорости это почти как xargs.

▪️ xargs - быстрее для больших списков. Пример:


find /var/log -type f -name "*.log" | xargs rm


xargs собирает много аргументов и запускает команду одним вызовом. Можно ограничить размер батча:


find . -name "*.tmp" | xargs -n 10 rm


⚠️ Главная проблема xargs. Файлы с пробелами ломают команду:


file one.txt
file two.txt


Поэтому правильный вариант:


find . -type f -print0 | xargs -0 rm


Пара:


-print0
xargs -0


делает обработку 100% безопасной.

BashTex 📱 #bash #utils
  • 👍 8
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →