Lorsque je cible certains fichiers sous OS X:
tar cvf foo.tar foo
Il produit un fichier supplémentaire ._foo
dans l'archive:
./._foo
foo
qui ne s'affiche que si je l'extrais sur un système d'exploitation autre que Mac. Mais ._foo
n'existe pas sur mon système de fichiers! Que se passe-t-il? Comment puis-je m'en débarrasser?
Réponses:
Le fichier tar d'OS X utilise le format AppleDouble pour stocker les attributs étendus et les ACL.
Le fichier tar d'OS X sait également comment reconvertir les membres ._ en formats natifs, mais les fichiers ._ sont généralement conservés lors de l'extraction des archives sur d'autres plateformes. Vous pouvez indiquer à tar de ne pas inclure les métadonnées en définissant COPYFILE_DISABLE sur une valeur:
man copyfile
ls -l@
affiche les clés et les tailles des attributs étendus,ls -le
imprime les ACLxattr -l
liste les clés et les valeurs des attributs étendusxattr -c
efface tous les attributs étendus (-d ne peut pas être utilisé seul)chmod -N
supprime les ACLInformations stockées sous forme d'attributs étendus:
la source
env COPYFILE_DISABLE tar -cf archive.tar my_folder/
.cat
outype
pour le moins voir ce qu'il y a à l'intérieur. Et c'est généralement quelque chose de simple qui a été saisi manuellement. Je ne le jetterais pas pour la sauvegarde, mais cela peut être une corbeille si vous voulez distribuer quelque chose sur plusieurs plates-formes et spécialement si c'est là par erreur. Il suffit de dire que l’option de les laisser est assez valable.Depuis
bsdtar 3.0.3 - libarchive 3.0.3
(et peut-être plus tôt) il y a une nouvelle option à labsdtar
commande appelée--disable-copyfile
pour supprimer la création de._
fichiers.la source
bsdtar 2.8.3 - libarchive 2.8.3
de10.7.5
l'--disable-copyfile
est , mais pas documentée disponible tout de même.Les
._
fichiers sont des ressources, comme mentionné dans d'autres réponses. Cependant, il existe un meilleur moyen de s'en débarrasser en utilisanttar
:Il existe également un
dot_clean
utilitaire pour nettoyer ces fichiers (je pense qu'il est généralement utilisé pour le stockage externe).la source
Voici un script python pour supprimer ces fichiers. Devrait fonctionner dans n'importe quel OS populaire.
Pas complètement testé, utilisez-le à vos risques et périls!
la source
Le caractère point, ".", Est utilisé sur la plate-forme Mac en tant qu'indicateur de fichier caché. Sous Windows, c'est le caractère "$". Quoi qu'il en soit, le fichier ._foo contient probablement des informations spécifiques à OS X et je vous recommande de ne pas les supprimer. Sur d'autres systèmes, vous devrez l'ignorer, ou quelqu'un ici pourra peut-être vous fournir un script masquant les fichiers et les dossiers commençant par un ".".
la source