Si estamos compartiendo algunos directorios con máquinas Mac OS X, ya sea mediante AFP (Apple Filing Protocol) o el clásico SMB (Samba), seguramente nos hemos dado cuenta la cantidad de archivos inservibles que nos deja el sistema operativo de la manzana en nuestro servidor, tal como pueden ser:

  • .DS_Store
  • ._*
  • :2*
  • .Apple*

Aunque tomando en cuenta que estos archivos son muy pequeños, eventualmente pueden incrementarse en volumen y llegar a mal gastar un espacio en disco que puede ser considerablemente importante.

El siguiente script en Bash, nos ayudara a encontrar estos ficheros y eliminarlos permanentemente de nuestros discos duros. Es opcional el configurar algún cron para su ejecución automática cuando mejor nos convenga.

Sin tanto charla, aquí el script, lo único que deberán de modificar es la ruta al disco(os) duro(s) que necesiten limpiar, en el ejemplo se usaran 2 discos duros:

Primero crearemos nuestro script, como root o con sudo:

$ vim osx_cleaner.sh

Después insertaremos lo que se muestra a continuación:

#!/bin/bash

echo "Preparing to clean up the system... $HOSTNAME"
 echo -n ""
 sleep 1

###### Limpiar el 1erdisco
 find /1erdisco/ -name ".DS_Store" -exec rm -Rfv '{}' \;
 find /1erdisco/ -name "._*" -exec rm -Rfv '{}' \;
 find /1erdisco/ -name ":2*" -exec rm -Rfv '{}' \;
 find /1erdisco/ -name ".Apple*" -exec rm -Rfv '{}' \;
 ######Limpiar el 2dodisco
 find /2dodisco/ -name ".DS_Store" -exec rm -Rfv '{}' \;
 find /2dodisco/ -name "._*" -exec rm -Rfv '{}' \;
 find /2dodisco/ -name ":2*" -exec rm -Rfv '{}' \;
 find /2dodisco/ -name ".Apple*" -exec rm -Rfv '{}' \;

Por ultimo cambiaremos los permisos al script para su ejecución:

$ chmod +x osx_cleaner.sh

Y lo ejecutamos:

$ ./osx_cleaner.sh

Esto limpiara nuestros discos de la basura residual del Apple OS X.

Edición de ultimo minuto:

Al final de cada linea en el script hay que agregar un espacio y » \;» sin comillas, ya que el plugin de code highlight se los comio, entonces nos quedaria algo asi:

$ find /1TBB/ -name «.Apple*» -exec rm -Rfv ‘{}’ \;