Elimine todos los archivos *.swp debajo del directorio actual, use el find
comando en una de las siguientes formas:
-
find . -name \*.swp -type f -delete
El-delete
opción significa que buscar eliminará directamente los archivos coincidentes. Esta es la mejor coincidencia con la pregunta real de OP.
Usando-type f
significa que find solo procesará archivos.
-
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
Opción-exec
permite a find ejecutar un comando arbitrario por archivo. La primera variante ejecutará el comando una vez por archivo, y la segunda ejecutará la menor cantidad de comandos posible reemplazando{}
con tantos parámetros como sea posible.
-
find . -name \*.swp -type f -print0 | xargs -0 rm -f
Canalizando la salida axargs
se usa desde comandos por archivo más complejos de lo que es posible con-exec
. La opción-print0
le dice afind
para separar las coincidencias con ASCII NULL en lugar de una nueva línea y-0
le dice axargs
esperar entrada separada por NULL. Esto hace que la construcción de la tubería sea segura para los nombres de archivo que contienen espacios en blanco.
Ver man find
para más detalles y ejemplos.
find . -name '*.swp' -delete
Tener find hacer la eliminación en sí elimina cualquier riesgo de espacio incrustado en el nombre del archivo, ... Para mayor seguridad, también considere agregar -type f
solo para archivos.
find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;
bash 4.0
shopt -s globstar
rm -f /path/**/*.swp