Solution 1 :
(Remarque :~
se traduit par /home/user
dans cet article)
Personnellement, je mets tous mes scripts système personnalisés dans /usr/local/bin
et tous mes scripts bash personnels en ~/bin
. Très peu de programmes que j'installe se placent en /usr/local/bin
répertoire donc il n'est pas très encombré et il était déjà dans le $PATH
variable sur la plupart de mes machines.
Pour ajouter /usr/local/bin
à votre chemin système (s'il n'y est pas déjà) ajoutez ceci à /etc/profile
:
PATH=$PATH:/usr/local/bin
export PATH
Pour ajouter ~/bin
au chemin de votre utilisateur ajoutez ceci à ~/.bash_profile
:
PATH=$PATH:$HOME/bin
export PATH
Parfois, le .bash_profile
par défaut le fichier aura une instruction if qui ajoute automatiquement ~/bin
à $PATH
s'il existe, alors créez le ~/bin
et ouvrez un nouveau terminal pour voir si le vôtre le fait déjà.
Solution 2 :
/usr/local/ est vraiment le bon endroit, tandis que /opt est vraiment pour les applications tierces ; "/opt est réservé à l'installation de progiciels d'application complémentaires." Cela fait partie de la norme de hiérarchie du système de fichiers.
Voir http://www.pathname.com/fhs/pub/fhs-2.3.html pour une discussion sur /opt.
Pour /usr/local/, c'est pour "l'utilisation par l'administrateur système". N'oubliez pas tout ce qui s'y trouve - documentez-le.
Solution 3 :
Historiquement, vous utiliseriez quelque chose comme /opt. Tout va bien tant qu'il est mis à jour dans $PATH pour les utilisateurs qui sont censés l'avoir (donc tout ce qui se trouve dans /home est une mauvaise idée).
Solution 4 :
/usr/share/clojure
semble être un lieu commun pour mettre les binaires et les bibliothèques de clojure - pourquoi je ne sais pas, cela semble naturel pour /usr/local/share/clojure
— créant ainsi un site
sous-répertoire sous celui-ci pour ces scripts bash semble correct.
Le point général est qu'il est plus logique d'organiser les scripts par fonction, de ne pas avoir tous les scripts bash au même endroit.
Solution 5 :
/usr/local
, je crois qu'il y a une certaine confusion dans le sens de "local".
Si je comprends bien, "local" ne signifie pas "provenant de/de la machine locale" mais, plus simplement, "spécifique à la machine locale", qui peut ou non provenir de/de la machine locale.