Eliminar lista de archivos en consola unix

Se puede dar la necesidad de borrar algunos archivos de un directorio pero con cierto patrón, puede ser alguna cadena en especifico o algo, en mi caso tengo un listado de archivos en un directorio y deseo eliminar todos aquellos que contengan la cadena error en su nombre, por ejemplo:


$ ls -1
20120607File1.txt
20120607Flie2.txt
20120607File3.txt
20120607File4.txt
20120607errorFile1.txt
20120607errorFile2.txt
20120607errorFile3.txt
20120607errorFile4.txt

En este caso solo deseo conservar los archivos 20120607File1.txt, 20120607File2.txt, 20120607File3.txt y 20120607File4.txt, y eliminar el resto.

Para esto hacemos uso del comando rm y le enviamos como parametro la lista de archivos que deseamos eliminar usando xargs para auxiliarnos en esta tarea.

Paso 1
Obtenemos la lista de archivos a eliminar y la almacenamos en un archivo temporal:


$ ls -1 | grep error > filelist.txt

Paso 2
Eliminamos todos los archivos contenidos en filelist.txt


$ xargs rm < filelist.txt
$ rm filelist.txt

Una vez hecho esto, solo se conservaran en el directorio los archivos que no contienen la cadena error dentro de su nombre.


$ ls -1
20120607File1.txt
20120607Flie2.txt
20120607File3.txt
20120607File4.txt

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s