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-deleteopción significa que buscar eliminará directamente los archivos coincidentes. Esta es la mejor coincidencia con la pregunta real de OP.
Usando-type fsignifica que find solo procesará archivos.
-
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
Opción-execpermite 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 axargsse usa desde comandos por archivo más complejos de lo que es posible con-exec. La opción-print0le dice afindpara separar las coincidencias con ASCII NULL en lugar de una nueva línea y-0le dice axargsesperar 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