Если у меня есть собственный сценарий оболочки или программы, которые я создал сам или загрузил из Интернета, и я хочу иметь возможность выполнять их из интерфейса командной строки, есть ли стандартное место для их размещения в структуре каталогов Linux / Unix?
/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?
Я обычно кладу его в папку ~ / bin и помещаю в PATH, но он не кажется чистым. И каждый раз, когда я загружаю новую программу, мне приходится снова помещать ее в PATH.
man hier
.~/bin
это прекрасное место для ваших пользовательских сценариев оболочки.Ответы:
/usr/local/bin
существует именно для этой цели, для общесистемной установки. Для вашего личного использования~/bin
это стандарт де-факто.Если вы хотите сохранить каждый двоичный файл в отдельном подкаталоге, вы можете сделать это и добавить символическую ссылку в каталог, уже находящийся в вашем
PATH
. Так, напримерcurl -o $HOME/downloads/fnord http://fnord.example.com/script.exe ln -s $HOME/downloads/fnord $HOME/bin/
предоставлено
$HOME/bin
в вашемPATH
. (Есть такие инструменты,stow
которые делают это - и многое другое - за кулисами.)источник
bin
предназначен для всех видов исполняемых файлов, скриптов или соответствующих двоичных файлов. Если вы хотите, чтобы они находились под прямым контролемbin
версий, можно, конечно , поставить всю свою систему под контроль версий; хотя чаще у вас есть отдельный проект для каждой или, по крайней мере, для каждой отдельной группы. Когда вы выпускаете новую версию, установите ее в своюbin
. Или, если вы серьезно относитесь к собачьему кормлению и / или в вашей жизни слишком мало сюрпризов, поместите символическую ссылку на свою версию для разработки в свойbin
.Это может немного отличаться в зависимости от типа Unix. Я предполагаю здесь Linux (хотя это может относиться к OSX). Согласно Стандарту иерархии файловой системы (FHS) (ссылка получена из рабочей группы Linux Standard Base ):
/usr/local/bin
по умолчанию часто встречается на пути.Обратите внимание, что вы должны поместить только исполняемый файл или ссылку на него
/usr/local/bin
, остальное, возможно, придется зайти/usr/local/lib
или/usr/local/share
./opt
Дерево может также быть разумным:(Вы можете создать свою собственную ссылку из
/opt/your-package/bin/executable
в/opt/bin
и добавить/opt/bin
ее,PATH
если ее еще нет.)источник