Ik wil naar meerdere bestanden zoeken met find
en ze allemaal verwijderen met -exec
. Ik heb geprobeerd
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
maar dit lijkt bestanden “fileB” te verwijderen, alleen niet fileAs.
Reacties
Antwoord
-o
is ook van toepassing op de actie, daarom moet u dingen groeperen:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
Tussen haakjes, uw find
implementatie ondersteunt mogelijk ook -delete
:
find ./ -type f \( -name fileA -o -name fileB \) -delete
Reacties
- en als het niet ' t doet, ondersteunt het waarschijnlijk
-exec rm {} +
Answer
Een ander alternatief:
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
Of indien mogelijk om die te vangen bestanden met grappige karakters:
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
Reacties
- Ik vind het leuk dat je bijna een jaar later terugkwam, alleen om de opmerking over bestandsnamen toe te voegen, die ' s toewijding. : D
rm
(het ' zal proberen, maar falen ).