Jeg vil søge efter flere filer ved hjælp af find
og slette dem alle ved hjælp af -exec
. Jeg prøvede
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
men dette ser ud til at fjerne filer “fileB” kun ikke fileAs.
Kommentarer
Svar
-o
gælder også for handlingen, derfor skal du gruppere ting:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
BTW, dit find
implementering understøtter muligvis også -delete
:
find ./ -type f \( -name fileA -o -name fileB \) -delete
Kommentarer
- og hvis den ikke ' t, understøtter den sandsynligvis
-exec rm {} +
Svar
Et andet 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 det er muligt at fange dem filer med sjove 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 kan godt lide, hvordan du kom tilbage næsten et år senere bare for at tilføje noten om filnavne, at ' s dedikation. : D
rm
(det ' vil prøve men mislykkes ).