Enfermos terminales III: Lo grande y lo pequeño

Enviado por pvaldes el 26 Abril, 2011 - 21:38.

Un nuevo comando retorcido pero rico rico que pongo aquí, básicamente, para que no se me pierda.

find / -size +75M ! -path /sys\* ! -path /proc\* ! -path /dev\* -type f -ls 2>/dev/null| gawk --use-lc-numeric '{print $7/1048576 " M - " $11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22}' |sort -g

Realmente hay poco que explicar. Es seguro usarlo y la mejor manera de entender lo que hace es copiarlo entero y pegarlo en vuestro terminal.

Imagino lo que estará pensando alguno: hay unos cuantos ejemplos de comandos similares en la red ¿estamos bajando el nivel?

Cierto, pero no son tan molones como este:

  1. Es razonablemente permisivo con los archivos cuyo nombre incorpora espacios en blanco
  2. Ignora los accesos directos
  3. No llena la pantalla con mensajes de error que no hay tiempo de leer
  4. Excluye algunos archivos problemáticos que no deben de borrarse
  5. Expresa el tamaño del archivo en Megas pero con decimales, un formato cómodo pero más detallado de lo normal (luego veremos para que sirve ésto)
  6. Usa el signo local para el separador decimal
  7. Y ordena los archivos encontrados por tamaño.

Un posible uso del comando (y la razón de escribirlo) es ayudarnos a tomar decisiones en sistemas con poco espacio libre. Por ejemplo si en medio de una descarga grande (legal naturalmente) salta un aviso de que la partición está a punto de llenarse podremos encontrar rápidamente los mayores archivos que podrían estar repetidos (mismo tamaño), por tanto ideales para borrar y liberar el máximo espacio libre con el mínimo esfuerzo una vez verificado que son iguales. Si no hay ningun archivo grande repetido al menos tendremos la lista de los archivos susceptibles de liberar más espacio al ser comprimidos.

El comando evita a propósito los archivos virtuales generados dinámicamente por el kernel. Aunque nos parezca que son muy grandes no debemos caer en la tentación de tratar de borrarlos para liberar espacio (de hecho no serviría de nada porque no ocupan espacio físico en el disco). También ignora los accesos directos para evitar el peligro de borrar el archivo original y conservar en su lugar un enlace roto.

Una vez que hemos ganado algo de tiempo y lo descargado parcialmente no corre peligro inmediato de perderse, sería el momento de mover estos archivos a una partición externa con más calma o tirar de herramientas como fdupes y bleachbit, muy efectivas, pero que llevan su tiempo y habrían sido demasiado lentas en éste caso (Fdupes en concreto es lentísimo).

Sea como sea es un ejemplo del uso de varios programas comúnes trabajando en equipo, lo bastante complejo como para que merezca la pena estudiar como funciona, fácil de ajustar a nuestras necesidades y que puede inspirarnos o servirnos como punto de partida para acometer mayores empresas en nuestras aventuras con la pantalla negra.

Imagen de siddharta
Enviado por siddharta el 26 Abril, 2011 - 22:11.

Muchas gracias pvaldes, me es muy útil en este momento porque un amigo me ha solicitado ayuda para encontrar archivos grandes en un servidor de correo con Red Hat y ha sido un tanto difícil explicarle sobre aplicaciones gráficas que pueden ayudarle (casi todo lo hace desde una sesión gráfica ..... de root), así que con la línea de comandos le es más difícil entenderse.

Por supuesto también a mí me será útil, ya que hasta ahora he usado la herramienta gráfica Baobab.

Gracias nuevamente,
Sidd.

Imagen de cnicolas
Enviado por cnicolas el 27 Abril, 2011 - 07:08.
siddharta escribió:

casi todo lo hace desde una sesión gráfica ..... de root

Por favor Sidd, que luego tengo pesadillas, convencele de que eso no esta bien.
Pvaldes, la instruccion esta bastante bien, aunque en muchos casos no sea necesario tal complejidad, find es una herramienta muy util con multitud de opciones.

Imagen de pvaldes
Enviado por pvaldes el 27 Abril, 2011 - 12:37.

Me alegro de que te sea útil Sidd. Find es una herramienta a la que me ha costado pillarle el punto, precisamente por su complejidad. Puede ser desafiante para el novato, especialmente si ya está medio acostumbrado a bash y la mejor manera de entender como funciona es viendo ejemplos complicados, cuanto más complicados mejor. Seguramente pondré alguno más en posteriores hilos si veo que puede aportar algo nuevo a lo que ya está en la red

Saludetes a ambos