find . -name '*spam' | xargs rm
De esta manera eliminaremos todos los ficheros que deseemos independientemente del número. En el ejemplo que acaben en *spam (ej archivo.spam, loqueseaspam ...).
Si el nombre de los archivos tiene espacios el comando anterior no funcionará, tendremos que usar el siguiente comando que es más genérico:
find . -name '*spam' | xargs -i rm {}
donde el -i indica que se sustituya {} por el nombre del archivo.
Otra forma de hacerlo:
find . -iname "*spam" -print0 | xargs -0 rm
Con el -print0 la salida de find irá con el carácter null, en lugar del salto de línea que usa por defecto. Con el parámetro -0 indicamos que xargs considere como separador el carácter null, en lugar del espacio o el salto de línea.
Otro ejemplo del uso de find y grep para buscar archivos que contienen una cadena de texto sin usar pipes:
find . -exec grep -H -n 'textoabuscar' {} \;
Otro ejemplo útil del uso de find y xargs, puede ser descomprimir archivos rar con unrar:
find . -iname "*part1.rar" | xargs -i unrar x {}
No hay comentarios:
Publicar un comentario