J’ai un script AppleScript qui exécute un test de résistance. Une partie du test consiste à ouvrir, enregistrer et fermer certains fichiers. D’une manière ou d’une autre, les fichiers ont récupéré des “atsortingbuts étendus” qui empêchent la sauvegarde des fichiers. Cela provoque l’échec du test de résistance.
Comment supprimer les atsortingbuts étendus?
Utilisez la commande xattr
. Vous pouvez inspecter les atsortingbuts étendus:
$ xattr s.7z com.apple.metadata:kMDItemWhereFroms com.apple.quarantine
et utilisez l’option -d
pour supprimer un atsortingbut étendu:
$ xattr -d com.apple.quarantine s.7z $ xattr s.7z com.apple.metadata:kMDItemWhereFroms
Vous pouvez également utiliser l’option -c
pour supprimer tous les atsortingbuts étendus:
$ xattr -c s.7z $ xattr s.7z
xattr -h
vous montrera les options de ligne de commande et xattr a une page de manuel .
Voir la réponse de Bavarious.
Utilisez xattr
avec l’indicateur -c
pour “effacer” les atsortingbuts:
xattr -c yourfile.txt
Pour supprimer récursivement des atsortingbuts étendus sur tous les fichiers d’un répertoire, combinez le drapeau -c
“clear” avec le drapeau récursif -r
:
xattr -rc /path/to/directory
Vous avez un long chemin avec des espaces ou des caractères spéciaux?
Ouvrez Terminal.app
et commencez à taper xattr -rc
, incluez un espace de fin, puis faites glisser le fichier ou le dossier vers la fenêtre Terminal.app
et il appenda automatiquement le chemin d’access complet avec une fuite correcte.
Essayez d’utiliser:
xattr -rd com.apple.quarantine directoryname
Cela prend soin de supprimer récursivement l’atsortingbut embêtant partout.
Une autre approche récursive:
# change directory to target folder: cd /Volumes/path/to/folder # find all things of type "f" (file), # then pipe "|" each result as an argument (xargs -0) # to the "xattr -c" command: find . -type f -print0 | xargs -0 xattr -c # Sometimes you may have to use a star * instead of the dot. # The dot just means "here" (whereever your cd'd to find * -type f -print0 | xargs -0 xattr -c