Mostrando las entradas con la etiqueta find. Mostrar todas las entradas
Mostrando las entradas con la etiqueta find. Mostrar todas las entradas

martes, noviembre 18, 2008

Eliminar Todos Directorios Vacios

Para eliminar directorios vacíos (incluso si los nombres de archivo o directorios contienen espacios o caracteres extraños) de un árbol que puede hacer:

find . -type d -empty -print0 | xargs -0 rmdir

jueves, junio 01, 2006

Buscar archivos y directorios por consola, comando find

Mucha gente depende de aplicaciones gráficas para buscar archivos / directorios en Linux. Con find se puede buscar por consola y filtrar todo lo que nosotros queramos e incluso ejecutar comandos. Os voy a contar como usarla ya que mucha gente lo desconoce y es algo de conocimiento casi obligado :
find Busca archivos o directorio filtrando con estas opciones:

find: Busca archivos , directorio e incluso texto, usando estas opciones de find:

-type d/f/l –> Especifica que es un directorio (d) / fichero (f) / enlaces (l)
-name "Documents" –> Lo que buscamos (Distingue entre mayusculas y minusculas)
-iname "Resumen" –> Lo que buscamos (NO distingue entre mayusculas y minusculas)
-print –> Que lo muestre por pantalla (No suele ser necesario)
-size +10k –> Que sea superior a 10 Kb
-atime +5 –> Que se haya accedido hace 5 dias
-exec –> Ejecuta una comando –> … -exec cp {} /tmp \; –> {} –> Archivos de la busqueda
-ok –> Ejecuta un comando (Pide confirmacion) –> -ok cp {} /tmp \;
-user usuario –> Filtra por dueño de directorio/archivo
-group grupo –> Filtra por grupo

Ejemplos:

Busca en /home/busi/ todos los archivos mp3 usados desde hace 5 dias de un tamaño superior a 30 kb, los copia y los deja en /home/busi/copia

find /home/busi/ -type f -atime +5 -size +30k -name "*.mp3" -exec cp {} /home/busi/copia \;

Lo mismo que el anterior pero preguntando antes de ejecutarlo

find /home/busi/ -type f -atime +5 -size +200k -name "*" -ok cp {} /home/busi/copia \;

<>

Buscar por grupos:

find /home/ -type l -group busigrupo -name "*" -print

Con ejecutar un comando,.. me refiero a cualquier comando, script,..

echo "Archivo encontrado" > tempi
find /home/busi/ -type f -size -40000k -name "*CACA.avi" -exec mutt -s {} busilezas@gmail.com <>

Recibido Mail –> N 6 root@busindre.com- Fri May 19 02:31 37/1956 /home/busi/SGAE_CACA.avi
Contenido del mail –> encontrado -exec mutt -s /home/busi/tema_sensible.mp3

Buscar texto:

find SGAE -type f -exec grep "http" {} /dev/null \;
Resultado: SGAE:http://youtube.com/watch?v=5t2kuQuh5Ts

Como vemos se pueden hacer muchas cosas, juntarlo con scripts,… Solo hemos de pensarlas un poco y conseguiremos grandes resultados, espero que os haya gustado. Un saludo!

http://www.tuxhuellas.com/