JOSEDU – WEB

Un ratito tranquilo…

De como utilizar el comando find …

TAGS: None

El comando find, es un comando muy potente de búsqueda desde linea de comandos, pero esta potencia a su vez se torna en su contra por la multitud de opciones y parámetros que nos encontramos. Aqui unos ejemplos que me han servido a mi para realizar varias tareas del día a día.

Ejemplo1:
Buscar los archivos temporales (o de respaldo), que me ha generado el editor de textos. Dos maneras diferentes

Comando : 

1: find . -name ._* -type f -print
2: find . -iregex “^.*\/\._.*$”

Ahora haciendo uso de tuberias y xargs seriamos capaz de borrar estos ficheros que ha encontrado

Comando:

1. find . -name ._* -type f -print | xargs rm -f
2. find . -iregex “^.*\/\._.*$” | xargs rm -f

Explicación : 
Busca en el directorio actual, los archivos de la forma “._nombrearchivo.ext”. Luego hemos hecho el uso de tuberias y xargs, para realizar la acción de borrado de dichos ficheros.

Ejemplo2:
Queremos buscar archivos con cierta/s extensiones en una o varias ubicaciones.

Tenemos dos maneras de hacerlo, con nuestras queridas a la vez que odiadas expresiones regulares, o con parámetros propios del find

Comando:
find /ubicacion/1 /ubicacion/2  -iregex “.*\(wmv\|avi\|mpg\|mkv\)$”
find /ubicacion/1 /ubicacion/2  -iname ‘*.avi’ -o -iname ‘*.mpg’ -o -iname ‘*.wmv’ -o -iname ‘*.mkv’

Nos devolveria alto tal que asi

/ubicacion/1/archivo124.mpg
/ubicacion/1/directorio3/archivo344.avi
/ubicacion/2/archivo12.mpg
/ubicacion/2/directorio7/archivo45.mkv

Ahora otra vez, si queremos lucirnos y aprovechar la potencia de los parámetros y de las tuberias, podriamos genernos una lista numerada con el nombre de los archivos encontrados. Explicado por pasos sería :

 - agregamos parámetro  -printf  ‘%f\n’ Esto devolveria algo tal que asi:

archivo124.mpg
archivo344.avi
archivo12.mpg
archivo45.mkv

 - Ahora hacemos uso de tuberia y usamos el awk de la siguiente manera : | awk ‘{print FNR “\t” $0}’. Esto nos imprime la lista numerada (FNR), tabulación (“\t”), y el nombre del fichero ($0). Devolvería el siguiente resultado

1         archivo124.mpg
2         archivo344.avi
3         archivo12.mpg
4         archivo45.mkv

- Ya si queremos rizar el rizo, y no queremos mostrar las extensiones, y mostrar solo el nombre del fichero, podriamos cambiar la anterior tubería, por esta otra:  | awk ‘{gsub(/\.(avi|mpg|wmv|mkv)$/,” “);print FNR “\t” $0}’  .Resultando:

1         archivo124
2         archivo344
3         archivo12
4         archivo45

 

© 2009 JOSEDU – WEB. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.

sex porn