¿A qué desarrollador web que use Mac OS no le ha pasado? Comprimes todos los archivos de tu proyecto usando tar, y cuando vas a descomprimir el archivo en destino, te encuentras con que se extraen un montón de ficheros que empiezan con el nombre ._

La razón de que se creen estos archivos radica en las particularidades del sistema de archivos de Mac, HFS+. Se trata de un sistema para poder mantener los atributos extendidos de los archivos cuando se exportan a otros sistemas de ficheros, pero en el 99% de ocasiones nos es totalmente innecesario (por ejemplo, si queremos publicar nuestros archivos en un servidor web que use Linux).

Podemos evitarlo de varias maneras:

Estableciendo la variable de entorno COPYFILE_DISABLE a 1 antes de ejecutar el comando:

$ COPYFILE_DISABLE=1 tar cvjf ../miarchivo.tar.bz2 *

O bien, editando el archivo .bash_profile de nuestro usuario:

$ cd
$ echo "COPYFILE_DISABLE=1; export COPYFILE_DISABLE" >> .bash_profile

¿Qué ocurre si ya hemos creado el archivo comprimido y no podemos volver a crearlo? Podemos decirle a tar que obvie los archivos que comiencen por ._

 

$ tar --exclude="._*" -zxjf miarchivo.tar.bz2

 

O bien podemos borrar los archivos que ya han sido creados:

$ find . -name '._*' -exec rm -v {} \;