Quiero buscar varios archivos usando find
y eliminarlos todos usando -exec
. Intenté
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
pero esto parece eliminar los archivos «fileB», pero no fileAs.
Comentarios
Responder
-o
también se aplica a la acción, por lo tanto, debe agrupar las cosas:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
Por cierto, su find
La implementación también podría admitir -delete
:
find ./ -type f \( -name fileA -o -name fileB \) -delete
Comentarios
- y si no ' t, probablemente admita
-exec rm {} +
Answer
Otra 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 si es posible, atraparlos archivos con personajes divertidos:
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
Comentarios
- Me gusta cómo regresaste casi un año después solo para agregar la nota sobre los nombres de los archivos, esa ' es la dedicación. : D
rm
directo (' lo intentará pero fallará ).