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