Limpieza de disco con Cygwin64 Terminal, fdupes y find
Se trata de limpiar un disco duro o una partición NTFS, la de proyectos por ejemplo, en un entorno Windows.
Ahora bien para realizar nuestro trabajo usaremos herramientas Linux típicas, como find o fdupes, cualquier comando Linux, o paquete tras instalarlo, lo podremos aplicar a un sistema de archivos NTFS, desde Windows usando un Shell Linux.
Lo primero es instalar Cygwin64, ¿no lo conoces? Pues te encantará.
Se trata de un Shell Linux en Windows, donde podemos usar cualquier comando o herramienta Linux.
Lo segundo es dejar el instalador setup-x86_64.exe a mano, para ir agregando paquetes que necesitemos como wget, el propio fdupes, etc… (en lugar de el apt-get install).
Lo podemos dejar por ejemplo junto al acceso directo que crea la instalación de Cygwin en el Escritorio para iniciar “Cygwin64 Terminal“.
Para instalar fdupes lanza de nuevo el setup, dale a siguiente, Install from Internet, siguiente, mismo directorio que inicialmente C:\cygwin64, all users (recomendado), siguiente, yo aquí uso Descargas, siguiente y siguiente y siguiente, seleccionas View Full, y buscas la cadena fdupes:
Que quede como en la imagen marcado el paquete binario [x] bin y siguiente. Se pueden buscar y añadir de golpe varios.
Y así cada vez que quieras instalar un nuevo paquete, o actualizar los existentes
- deberás lanzar el ejecutable de setup setup-x86_64.exe,
- actualizar repositorios,
- y te aparecerá el gestor de paquetes, donde poder ir actualizando lo ya instalado y agregar paquetes/programas nuevos.
Consola Cygwin
Para salir a la consola tenemos el acceso directo que creó el instalador, o el ejecutable en la carpeta de instalación
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
Esos son los parámetros que acompañan a la llamada a mintty.exe desde mi acceso directo.
Sistema de ficheros
Los discos duros en Cygwin se encuentran en la ruta /cygdrive:
ls /cygdrive/ c d e f h j
Imagina que en la carpeta “_proyectos” del disco E:\ quieres hacer limpieza, borrar los duplicados y carpetas como “_notes”.
- Paso 1: fdupes
- Paso 2: restos con find
Utilizaremos el comando fdupes así:
fdupes -r -d -N /cygdrive/e/_proyectos/
fdupes pasará por varias fases
- Primero indexará los archivos
- Después realizará el borrado
La limpieza tardará bastante, dependiendo del número de archivos y el peso de los mismos, ya que no se comprueba duplicidad a nivel nombre y tamaño, se calcula el hash MD5 de cada archivo y la comparación se realiza entre hashes.
Ahora podemos usar find para borrar ficheros y carpetas temporales, por ejemplo:
find /cygdrive/e/_proyectos/ -name "_notes" -exec rm -rf {} +
Para borrar las carpetas temporales _notes de ciertos proyectos web.
Otros ejemplos:
- “Thumbs.db” de las miniaturas de imágenes en Windows
- Los archivos temporales de MAC .DS_store
- Los archivos temporales de Dolphin .directory
- Los archivos de bloqueo de OpenOffice y LibreOffice “.~lock.*” (sí se pueden usar comodines, pero no expresiones regulares)
- Ficheros temporales de Linux “*~“
- etc … en definitiva cualquier archivo que consideremos basura.
Y esto es todo, que no poco.