Eu queria excluir arquivos com mais de 2 MB em uma pasta específica. Então eu corri:
find . -size +2M
E eu tenho uma lista de dois arquivos
./a/b/c/file1
./a/f/g/file2
Então eu corro:
find . -size +2M -exec rm ;
e recebo a mensagem de erro Find: missing argument to -exec
Verifico a sintaxe na página de manual e diz -exec command ;
Então, ao invés, eu tento
find . -size +2M -exec rm {} +
E isso funciona. Eu entendo que o {} faz executar o comando como em rm file1 file2
vez de rm file1; rm file2;
.
Então, por que o primeiro não funcionou?
RESPONDA:
Eu acho que só precisei RTFM algumas vezes para finalmente entender o que estava dizendo. Mesmo que o primeiro exemplo não mostre {}, as chaves são necessárias em todos os casos. E então adicione \; ou + dependendo do método desejado. Não basta ler o cabeçalho. Leia a descrição também. Entendi.