Jeg vil søke etter flere filer ved hjelp av find
og slette dem alle ved hjelp av -exec
. Jeg prøvde
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
men dette ser ut til å fjerne filer «fileB» bare ikke fileAs.
Kommentarer
Svar
-o
gjelder også for handlingen, derfor må du gruppere ting:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
BTW, din find
implementering kan også støtte -delete
:
find ./ -type f \( -name fileA -o -name fileB \) -delete
Kommentarer
- og hvis den ikke ' t, støtter den sannsynligvis
-exec rm {} +
Svar
Et annet alternativ:
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
Eller hvis mulig å fange dem filer med morsomme tegn:
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
Kommentarer
- Jeg liker hvordan du kom tilbake nesten et år senere bare for å legge til notatet om filnavn, at ' s dedikasjon. : D
rm
(det ' vil prøve, men mislykkes ).