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

  • Rimuoverà anche tutte le directory denominate " fileB ", incidentalmente.
  • @Wildcard Non con rm (' proverò ma fallirà ).
  • @Kusalananda, ah, giusto.

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *