Vous pouvez marquer des fichiers et des dossiers avec une couleur dans le Finder de Mac OS X. Existe-t-il un moyen de le faire à partir d'un script shell?Marquage de fichiers avec des couleurs dans OS X Finder à partir de scripts shell
Répondre
Ce script shell prend le nom de fichier ou dossier comme premier argument et l'indice de l'étiquette (0 pour pas d'étiquette, 1 pour le rouge, ..., 7 pour le gris) comme deuxième argument.
#!/bin/sh
osascript -e "tell application \"Finder\" to set label index of alias POSIX file \"`cd -P -- "$(dirname -- "$1")" && printf '%s\n' "$(pwd -P)/$(basename -- "$1")"`\" to $2"
Plus directement, si le nom de fichier de $ est une variable shell avec le nom de chemin absolu du fichier ou le dossier à étiqueter et l'étiquette $ est une variable shell avec le numéro d'index d'étiquettes,
osascript -e "tell application \"Finder\" to set label index of alias POSIX file \"$filename\" to $label"
est une commande shell pour affecter l'étiquette au fichier ou au dossier.
Une façon laide à faire ce serait:
exec osascript <<\EOF
tell app "Finder"
-- [...]
-- selecting the file
-- [...]
-- 4 is Blue
set label index of thisItem to 4
end tell
lancement Fondamentalement un AppleScript qui utilise Finder pour définir la couleur.
J'ai obtenu les notes de:
(couleur) http://www.macosxhints.com/article.php?story=20070602122413306
(Shell) http://www.macosxhints.com/article.php?story=20040617170055379
Sur la base des réponses ici et dans les postes mentionnés, je fait la fonction suivante et ajouté à mon ~/.bash_profile
fichier:
# Set Finder label color
label(){
if [ $# -lt 2 ]; then
echo "USAGE: label [0-7] file1 [file2] ..."
echo "Sets the Finder label (color) for files"
echo "Default colors:"
echo " 0 No color"
echo " 1 Orange"
echo " 2 Red"
echo " 3 Yellow"
echo " 4 Blue"
echo " 5 Purple"
echo " 6 Green"
echo " 7 Gray"
else
osascript - "[email protected]" << EOF
on run argv
set labelIndex to (item 1 of argv as number)
repeat with i from 2 to (count of argv)
tell application "Finder"
set theFile to POSIX file (item i of argv) as alias
set label index of theFile to labelIndex
end tell
end repeat
end run
EOF
fi
}
Il y a aussi l'outil de ligne de commande « setLabel » dans le paquet osxutils. Il ne nécessite pas AppleScript ou que le Finder soit en cours d'exécution.
Ceci utiliserait le même ordre pour les couleurs que Finder.
#!/bin/bash
if [[ $# -le 1 || ! "$1" =~ ^[0-7]$ ]]; then
echo "Usage: labelfile ..." 1>&2
exit 1
fi
colors=(0 2 1 3 6 4 5 7)
n=${colors[$1]}
shift
osascript - "[email protected]" <<END > /dev/null 2>&1
on run arguments
tell application "Finder"
repeat with f in arguments
set f to (posix file (contents of f) as alias)
set label index of f to $n
end repeat
end tell
end
END
Je redirigeant STDERR, parce que je suis arrivé avertissements comme 2012-09-06 13:50:00.965 osascript[45254:707] CFURLGetFSRef was passed this URL which has no scheme (the URL may not work with other CFURL routines): test.txt
sur 10,8. STDOUT est redirigé parce qu'osascript imprime la valeur de la dernière expression.
Voici un script python rapide je l'ai écrit:
https://github.com/danthedeckie/finder_colors
qui fixe les couleurs des dossiers et des fichiers de la ligne de commande.
Utilisation:
finder_colors.py red /Users/daniel/src
définit le répertoire/Users/répertoire daniel/src être rouge.
finder_colors.py /Users/daniel/src
renvoie la couleur (dans ce cas, 'rouge'). Si vous écrivez un script python, vous pouvez importer finder_colors en tant que module, et l'utiliser directement (finder_colors.get (...), et finder_colors.set (...).
Si vous nous expliquez comment vous le faites, par exemple via des exemples de code pertinents de votre solution, cela vous aiderait davantage – Pfitz
Merci @Pfitz - J'ai ajouté La façon dont cela fonctionne en interne consiste à utiliser une bibliothèque python intégrée pour éditer les attributs étendus du fichier Je ne trouvais pas de manière élégante et élégante de script shell natif pour le faire, et je n'aime pas la pomme. solutions de script. – Daniel
- 1. Comment gérer plusieurs glisser/déposer de fichiers à partir du Finder sous Mac OS X 10.5?
- 2. Servir des scripts Python avec CGIHTTPServer sous Mac OS X
- 3. Mac OS couleurs X vim mutilées
- 4. Suppression de fichiers avec des scripts python
- 5. Dormir OS X à partir de Java
- 6. Pouvez-vous accéder aux API AppleScript à partir du script shell sur Mac OS X?
- 7. Exécution indépendante de scripts shell à partir d'une application Java
- 8. Programmation CGI avec des scripts shell
- 9. Utilisation du shell adb d'Android dans OS X
- 10. Comment détecter les paramètres régionaux actuels dans Mac OS X à partir du shell
- 11. Extraire des informations à partir d'une application MAC OS X
- 12. Création de jnilib à partir de fichiers x86_64 .a sous Mac OS X 10.6
- 13. FTP à SFTP dans les scripts shell
- 14. Citation d'arguments de ligne de commande dans des scripts shell
- 15. Ajouter des badges aux icônes de fichiers dans le Finder
- 16. Utilisation de scripts shell éligibles
- 17. Comment ajouter des éléments au menu contextuel du Finder sous Mac OS X?
- 18. documentation des paramètres des scripts shell
- 19. but script shell de x dans « x $ VARIABLE »
- 20. Accéder au shell git dans GitX sous OS X
- 21. Comment faire pour que le Finder 'Open With' fonctionne pour mon application (XCode, OS X)?
- 22. Comment exécuter des scripts shell à distance à partir de pages ASP?
- 23. scripts shell sur Windows XP
- 24. Exécuter des scripts dans des fenêtres séparées
- 25. Lua scripts compilés sur Mac OS X - Intel vs PPC
- 26. Mac OS X: obtention des noms des fichiers modifiés/écrits
- 27. Comment imiter Finder arbre gauche dans l'application de cacao?
- 28. Comment ajouter des éléments au menu contextuel du Finder sous Mac OS X en utilisant JAVA?
- 29. Extrait des fichiers Cache.db sous Mac OS X Leopard
- 30. Comment exécuter des scripts shell dans un site ASP.NET
Ceci échouera si le nom de fichier contient des guillemets doubles ou se termine par une barre oblique inverse –
@Kevin: Toute solution à cela? – Svish
@Kevin: Aussi ... pourquoi auriez-vous un nom de fichier contenant des guillemets doubles? Je pensais que c'était invalide ...ou peut-être seulement sous Windows ... – Svish