Chciałem usunąć pliki o rozmiarze większym niż 2 MB w określonym folderze. Więc pobiegłem:
find . -size +2M
I mam listę dwóch plików
./a/b/c/file1
./a/f/g/file2
Więc uruchamiam:
find . -size +2M -exec rm ;
i dostaję komunikat o błędzie Find: missing argument to -exec
Sprawdzam składnię na stronie podręcznika i mówi: -exec command ;
Zamiast tego próbuję
find . -size +2M -exec rm {} +
I to działa. Rozumiem, że {} sprawia, że wykonuje polecenie jak rm file1 file2
zamiast rm file1; rm file2;
.
Dlaczego więc pierwszy nie zadziałał?
ODPOWIEDŹ:
Chyba musiałem kilka razy RTFM, aby w końcu zrozumieć, co mówi. Mimo że pierwszy przykład nie pokazuje {}, nawiasy klamrowe są wymagane we wszystkich przypadkach. A następnie dodaj \; lub + w zależności od żądanej metody. Nie czytaj tylko nagłówka. Przeczytaj także opis. Rozumiem.