Solución 1:
(Nota:~
se traduce como /home/user
en esta publicación)
Personalmente, puse todos mis scripts de sistema personalizados en /usr/local/bin
y todos mis scripts bash personales en ~/bin
. Muy pocos programas que instalo se ubican en /usr/local/bin
directorio por lo que no está muy abarrotado y ya estaba en el $PATH
variable en la mayoría de mis máquinas.
Para agregar /usr/local/bin
a la ruta de su sistema (si aún no está allí) agregue esto a /etc/profile
:
PATH=$PATH:/usr/local/bin
export PATH
Para agregar ~/bin
a la ruta de su usuario agregue esto a ~/.bash_profile
:
PATH=$PATH:$HOME/bin
export PATH
A veces, el .bash_profile
predeterminado El archivo tendrá una declaración if que agrega automáticamente ~/bin
a $PATH
si existe, cree el ~/bin
y abre una nueva terminal para ver si la tuya ya hace esto.
Solución 2:
/usr/local/ es realmente el lugar correcto, mientras que /opt es realmente para aplicaciones de terceros; "/opt está reservado para la instalación de paquetes de software de aplicación complementarios". Esto es parte del estándar de jerarquía del sistema de archivos.
Consulte http://www.pathname.com/fhs/pub/fhs-2.3.html para obtener información sobre /opt.
Para /usr/local/, es para "uso del administrador del sistema". Simplemente no se olvide de las cosas allí, documéntelo.
Solución 3:
Históricamente usarías algo como /opt. Cualquier cosa está bien siempre que se actualice en $PATH para los usuarios que se supone que deben tenerlo (por lo tanto, cualquier cosa en /home es una mala idea).
Solución 4:
/usr/share/clojure
parece un lugar común para colocar los archivos binarios y las bibliotecas de clojure; no sé por qué, parece natural para /usr/local/share/clojure
— entonces creando un site
el subdirectorio debajo de este para estos scripts bash parece estar bien.
El punto general es que tiene más sentido organizar los scripts por función, no tener todos los scripts bash en el mismo lugar.
Solución 5:
/usr/local
, creo que hay cierta confusión en el significado de "local".
Tal como lo entiendo, "local" no significa "originado en/desde la máquina local" sino, más simplemente, "específico de la máquina local", que puede o no originarse en/desde la máquina local.