Aquí os dejo un comando para poder eliminar un tipo de fichero concreto de una ruta, añadiendo la posibilidad de hacer que no busque en un subdirectorio o subdirectorios concretos.
De esta manera, se simplifica un montón poder dejar solo los tipos de ficheros que nos interesan. Por ejemplo para crear un repositorio de ficheros fuente o solo de imágenes, etc...
find . -name \*.png,\* ! -path "./blog/*" -exec rm {} \;
La explicación es la siguiente:
- find: comando find (para mas información "man find").
- . (punto): Indica donde queremos que se ejecute el comando. En este caso, el punto (.) indica que queremos que realice en el directorio en el que nos encontramos (recordad que find es recursivo y realizara la búsqueda en los subdirectorios también)
- -name \*.png,\*: indica que buscamos ficheros por nombre. El nombre es \* (asterisco escapado) indica cualquier carácter, cualquier numero de veces; ".png," indica que ha de estar seguido de esta cadena ".png,"; y por ultimo \* (asterisco escapado) indica que puede terminar con cualquier carácter cualquier numero de veces.
- ! -path "./blog/*": con la exclamación (!) cambia el sentido del modificador siguiente, en este caso dice que NO sea el path "./blog/*" lo cual significa que nada que este dentro de blog ni la propia carpeta de blog.
- -exec rm {} \; : esto indica por ultimo, que se ejecute el comando siguiente. En este caso rm. ({}) indica que a rm se le aplica la salida estándar del find, por lo cual, borrara todo lo que cumpla la búsqueda. Por ultimo (\;) es la forma de terminar el comando cuando se ejecuta un -exec.
Espero que os sirva para mucho!!
Saludos!
No hay comentarios:
Publicar un comentario