Desidero cercare più file utilizzando find
ed eliminarli tutti utilizzando -exec
. Ho provato
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
ma questo sembra rimuovere i file “fileB” solo non fileAs.
Commenti
Rispondi
-o
si applica anche allazione, quindi devi raggruppare le cose:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
A proposito, il tuo find
limplementazione potrebbe supportare anche -delete
:
find ./ -type f \( -name fileA -o -name fileB \) -delete
Commenti
- e se non ' t, probabilmente supporta
-exec rm {} +
Risposta
Unaltra alternativa:
WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted. find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f
O, se possibile, catturarli file con caratteri divertenti:
NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method) find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f
Commenti
- Mi piace come sei tornato quasi un anno dopo solo per aggiungere la nota sui nomi dei file, quella dedica di '. : D
rm
(' proverò ma fallirà ).