Je cherche un moyen, via le terminal, de changer si l'extension d'un fichier spécifique est affichée dans le Finder, quelque chose comme:
$ hideextension ~/music/somesong.mp3
Sans avoir à ouvrir Get Info et à modifier la case à cocher, car c'est très fastidieux.
J'ai l'intention de l'intégrer dans un script que j'appelle via un raccourci à l'aide de FastScripts. Je voudrais essayer de rester à l'écart des scripts GUI car cela semble impur, bien que toutes les idées sur la façon d'accomplir cela soient les bienvenues.
macos
command-line
file-management
file-extension
joshua.thomas.bird
la source
la source
Réponses:
La seule véritable façon de changer cela via l'interface graphique est de cliquer sur Masquer l'extension dans la fenêtre Informations du Finder . Cette vérification modifie l'
com.apple.FinderInfo
attribut étendu, que vous ne pouvez normalement pas modifier - du moins pas facilement. Nous pouvons cependant utiliser un outil pour le faire pour nous.Pour que ce qui suit fonctionne, vous devez évidemment avoir Afficher toutes les extensions de fichiers non coché dans les préférences du Finder.
Via AppleScript
AppleScript offre cette fonctionnalité avec la
set extension hidden
commande. Vous avez évidemment besoin d'unalias
pour un objet fichier. Nous pouvons obtenir cela, par exemple, via une boîte de dialogue. Voici juste un exemple de travail minimal.Pour inverser, il suffit d'échanger
true
avecfalse
ici. L'appel complet est alors, par exemple:Vous pouvez également l'exécuter directement à partir d'un fichier de script (merci @DanielBeck pour l'ajout):
Enregistrez-le sous
filename.scpt
et exécutez-le à partir de la ligne de commande avec:Avec la
SetFile
commandeSi vous avez installé Xcode, vous obtiendrez le
SetFile(1)
binaire, qui fait exactement ce que vous voulez (et offre quelques fonctions supplémentaires liées aux attributs de fichier):Masquer l'extension:
Afficher à nouveau l'extension:
la source
on run argv [newline] tell application "Finder" to set extension hidden of (POSIX file (first item of argv) as alias) to true [newline] end run
utilisez commeosascript filename.scpt targetfile
.SetFile
est obsolète depuis Xcode 6 . Le lien vers la page de manuel a également expiré.Merci slhck pour votre réponse, cela m'a aidé un tas à obtenir ce que je voulais faire.
Donc, comme j'aime les raccourcis, j'ai créé un service "Run Shell Script" via Automator.
Ensuite, je suis allé au Finder -> Préférences des services et j'ai ajouté un raccourci vers le service.
J'espère que cela aide. =)
la source
STATUS=
ligne manque une coche arrière à la fin. De plus, sur mon Mac + XCode, la commandeGetFileInfo
a un G. majusculeIl existe une autre option si vous souhaitez afficher l'extension de fichier actuellement masquée: le Finder stocke cette option "masquer l'extension" dans l'
com.apple.FinderInfo
attribut de fichier étendu. Vous pouvez le vérifier vous-même en exécutant cette commande qui répertorie tous les attributs étendus:Ainsi, afin d'afficher l'extension, vous pouvez supprimer cet attribut:
Mais gardez à l'esprit que le Finder stocke d'autres métadonnées telles que la couleur des balises dans cet attribut, donc ces métadonnées seront perdues. Et, comme l'attribut est binaire, vous ne pouvez pas le modifier facilement.
la source
Afin d'avoir un seul argument sur la ligne de commande (
$ hideextension ~/music/somesong.mp3
), vous pouvez faire de votre applescript un script shell. Il est possible d'utiliser osascript dans le shebang (#!/usr/bin/osascript
) comme dans le code suivant. Procéder :#!/usr/bin/osascript
) au début du fichierDans Terminal, rendez-le exécutable:
Vous pouvez maintenant l'exécuter:
Donc, le code pour illustrer:
la source
Même s'il
SetFile
est obsolète depuis Xcode 6, il est toujours disponible dans XCode 11, vous pouvez donc vous attendre à ce qu'il reste dans les outils de ligne de commande dans un avenir prévisible ...https://download.developer.apple.com/Developer_Tools/Command_Line_Tools_for_Xcode_11/Command_Line_Tools_for_Xcode_11.dmg
la source