Vous avez signalé dans un commentaire que vous travaillez sur un système Mac OS X. Ceci est un indice important de l'objectif de ces ._*
fichiers.
Ces ._*
entrées d'archive sont des morceaux de données AppleDouble qui contiennent les informations supplémentaires associées au fichier correspondant (celui sans le ._
préfixe). Ils sont générés par la famille de fonctions Copyfile (3) propre à Mac OS X. Les objets blob AppleDouble stockent les données de contrôle d'accès (ACL) et les attributs étendus (généralement, les indicateurs du Finder et les «fourchettes de ressources», mais les xattrs peuvent être utilisés pour stocker tout type de données).
Les outils d'archivage Mac OS X fournis par le système ( bsdtar
(également associés en tant que tar
), gnutar
et pax
) généreront un ._*
membre d'archive pour tout fichier auquel sont associées des informations étendues; en mode «unarchive», ils décoderont également ces membres d'archive et appliqueront les informations étendues résultantes au fichier associé. Cela crée une archive «pleine fidélité» à utiliser sur les systèmes Mac OS X en préservant et en extrayant plus tard toutes les informations que le système de fichiers HFS + peut stocker.
Les outils d'archivage correspondants sur d'autres systèmes ne savent pas donner un traitement spécial à ces ._*
fichiers, ils sont donc décompressés en tant que fichiers normaux. Étant donné que ces fichiers sont assez inutiles sur d'autres systèmes, ils sont souvent considérés comme des «fichiers indésirables». De même, si un système non-Mac OS X génère une archive qui inclut des fichiers normaux commençant par ._
, les outils de désarchivage de Mac OS X essaieront de décoder ces fichiers en tant qu'informations étendues.
Il existe cependant un moyen non documenté (?) De faire en sorte que les archiveurs Mac OS X fournis par le système se comportent comme ils le font sur d'autres systèmes Unixy: la variable d'environnement COPYFILE_DISABLE. La définition de cette variable (sur n'importe quelle valeur, même la chaîne vide), empêchera les archiveurs de générer ._*
des membres d'archive pour représenter toute information étendue associée aux fichiers archivés. Sa présence empêchera également les archiveurs d'essayer d'interpréter ces membres d'archives comme des informations étendues.
COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …
Vous pouvez définir cette variable dans le fichier d'initialisation de votre shell si vous souhaitez travailler de cette façon le plus souvent.
# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Ensuite, lorsque vous devez réactiver la fonction (pour conserver / restaurer les informations étendues), vous pouvez «dé-définir» la variable pour des commandes individuelles:
(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)
Les archiveurs sur Mac OS X 10.4 font également quelque chose de similaire, bien qu'ils utilisent une variable d'environnement différente: COPY_EXTENDED_ATTRIBUTES_DISABLE