Стандартный каталог Unix для размещения пользовательских исполняемых файлов или скриптов? [закрытый]
Если у меня есть пользовательский сценарий оболочки или программы, которые я создал сам или загрузил из интернета, и я хочу иметь возможность выполнить это из CLI, есть ли стандартное расположение, чтобы поместить это в структуру каталогов Linux/Unix?
/usr/bin ?
/usr/local/bin ?
/usr/lib ?
/usr/sbin ?
/bin ?
/sbin ?
/var ?
обычно я помещаю его в папку ~/bin и помещаю его в путь, но он не кажется чистым. И каждый раз, когда я загружал новую программу, я должен снова поставить ее на путь.
3 ответа:
именно для этой цели, для системы. Для вашего личного пользования,
~/binявляется стандартом де-факто.если вы хотите сохранить каждый двоичный файл в своем собственном каталоге, вы можете сделать это, и добавить символическую ссылку на каталог в вашем
PATH. Так, например,curl -o $HOME/downloads/fnord http://fnord.example.com/script.exe ln -s $HOME/downloads/fnord $HOME/bin/предоставил
$HOME/binв своемPATH. (Есть такие инструменты, какstowкоторые делают это - и многое другое-за кулисами для вас.)
это может незначительно отличаться в зависимости от вкуса и Unix. Я предполагаю, что Linux здесь (хотя это может относиться к OSX). Согласно стандарт иерархии файловой системы (FHS) (ссылка получена из стандартная базовая рабочая группа Linux):
The
/usr/localиерархия для использования системным администратором, когда локальная установка программного обеспечения. Он должен быть в безопасности от перезаписывается при обновлении системного программного обеспечения. Может быть используется для программы и данные, которые доступны для совместного использования среди группы хостов, но не найдено в/usr.локально установленное программное обеспечение должно быть помещено в
/usr/localа чем/usrесли он не устанавливается для замены или обновления программного обеспечения в/usr.
/usr/local/binчасто находится на пути по умолчанию.обратите внимание, что вы должны только поместить исполняемый файл или ссылку на него в
/usr/local/bin, остальные, возможно, придется идти в/usr/local/libили/usr/local/share.The
/optдерево также может быть разумным:
/optзарезервировано для установки дополнительного прикладного программного обеспечения пакеты.пакет, который будет установлен в /opt, должен найти свои статические файлы в a отдельно
/opt/<package>или/opt/<provider>дерево каталогов, где<package>- это имя, которое описывает пакет программного обеспечения и<provider>является зарегистрированным именем поставщика LANANA.[...]
каталоги /опт/бин /выбрать/док, /опт/включить /опт/инфо /опт/Либ, и /opt / man зарезервированы для использования локальным системным администратором. Пакеты может предоставлять "интерфейсные" файлы, предназначенные для размещения (путем связывания или копирование) эти зарезервированные каталоги локальным системным администратором, но должны нормально функционировать в отсутствие этих зарезервированных справочники.
(вы можете сделать свою собственную ссылку из
/opt/your-package/bin/executableна/opt/binи положил/opt/binнаPATHесли он еще не там.)
Ну я бы использовал
~/bin(пока я не корень), но относительно$PATHвы всегда можете сделатьexport PATH=".:${PATH}" # or export PATH="${PATH}:."таким образом, фактический рабочий каталог всегда будет в вашем
$PATH. Хотя у него есть некоторые проблемы с безопасностью... особенно с загруженными скриптами.