I wanted to delete files that were greater than 2MB within a specific folder. So I ran:
find . -size +2M
And I got a list of two files
./a/b/c/file1
./a/f/g/file2
So I then run:
find . -size +2M -exec rm ;
and I get the error message Find: missing argument to -exec
I check the syntax in the man page and it says -exec command ;
So instead I try
find . -size +2M -exec rm {} +
And it works. I understand that the {} make it execute the command like rm file1 file2
instead of rm file1; rm file2;
.
So why didn't the first one work?
ANSWER:
I guess I just had to RTFM a couple of times to finally understand what it was saying. Even though the first example doesn't show {}, the braces are required in all cases. And then either add \; or + depending on the desired method. Don't just read the heading. Read the description as well. Got it.
Best Answer
You can use any of the forms:
The semicolon should be escaped!