Я хотів видалити файли розміром більше 2 Мб у певній папці. Тому я побіг:
find . -size +2M
І я отримав список з двох файлів
./a/b/c/file1
./a/f/g/file2
Тож я запускаю:
find . -size +2M -exec rm ;
і я отримую повідомлення про помилку Find: missing argument to -exec
Я перевіряю синтаксис на сторінці man, і він говорить -exec command ;
Тому замість цього я намагаюся
find . -size +2M -exec rm {} +
І це працює. Я розумію, що {} змушує його виконувати команду як, rm file1 file2
а не rm file1; rm file2;
.
То чому ж перший не працював?
ВІДПОВІДЬ:
Я здогадуюсь, я просто мусив RTFM пару разів, щоб нарешті зрозуміти, про що йдеться. Хоча перший приклад не показує {}, дужки потрібні у всіх випадках. А потім або додайте \; або + залежно від потрібного способу. Не просто читайте заголовок. Прочитайте також опис. Зрозумів.