Почему каталог bin Unix, названный таким образом?

Вы могли, конечно, переделать это так, чтобы это работало на любую данную папку или набор файлов, но сначала необходимо понять причину, это не делает этого теперь.

На Linux расширения файла не имеют значения, единственная вещь, которая вопросы является выполнить битом. Вещи могут быть выполнены, действительно ли они двоичные или просто текст в форме сценария. Ваши критерии "не двоичные файлы" не совпадают хорошо с отличиями, сделанными Linux о том, что файл или нет.

Это сказанное не было бы слишком трудно записать пользовательскую функцию завершения для замены завершения шарика имени файла для данной команды, которая перечислит все файлы, но исключит тех, которые имеют '.c' версии. Требовались бы немного служебные, который замедлит заполнение клавишей Tab немного.

6
11.01.2012, 17:47
4 ответа

Что касается значения каталога /bin, процитируем источник страницы руководства intro(0) из моментального снимка Unix Research V3. доступен на github и в других местах:

Commands generally reside in directory /bin____ (for
bin___ary programs).

Этот же текст появляется в The Unix Programmer's Manual (неявно первое издание), в Introduction , от 1971 года.

Насколько Я могу сказать, что в ранней Unix не было пользовательских команд, представленных в виде сценариев, и только в V6 два сценария впервые появились в /usr/bin, к тому времени соглашение о поиске /bin ] и /usr/bin для команд были очень хорошо установлены, и поэтому это было бы естественным местом для их размещения — никогда не было необходимости отделять их от «двоичных файлов», и до сих пор нет .

4
27.01.2020, 20:22

По моему мнению, bin средства что-то больше вроде "исполняемого файла", чем строго "двоичный". (В конце все файлы являются двоичными.) Существует довольно много файлов сценария даже в /bin; в моей системе Debian, file /bin/* | grep -c 'shell script' говорит, что тут же существует 19 сценариев оболочки. При нахождении в/usr/bin у меня есть еще 325 сценариев оболочки.

Если Ваш сценарий применим, как будто это было скомпилированное приложение, просто отбросьте его в соответствующем bin каталог, как это - то, где люди ожидали бы находить его. Если это - простой сценарий помощника, может быть лучше поместить его в отдельный каталог, только подчеркнуть, что это не действительно собственное приложение.

8
27.01.2020, 20:22
  • 1
    Можно было бы также рассмотреть то, что сценарии удара действительно называют исполняемые файлы, поэтому даже при том, что они сами не являются двоичными (в контекстном значении слова), они управляют двоичным файлом/исполняемыми файлами использования. –  jbowman 14.05.2016, 00:23

В более ранние времена Unix, /bin каталог только содержал скомпилированные двоичные файлы. Сценарии появились туда позже. По крайней мере, от версии 7, которая представила #! interpreter конвенция, но вероятно позже.

5
27.01.2020, 20:22

Относительно причины, почему это называют тем путем, и почему не, /exec или некоторое другое имя, все это идет путем назад к старым и ранним дням Unix, где у людей был выбор выбрать очень хромые имена, как использовался только в стадиях разработки и не помещал очень мысль, которая в Unix ближайшего будущего будет повсеместным выбором для вычислений затем. Linux, который взял побеждающую сторону и нес наследие стиля Unix как OSs (считал реализации стиля POSIX), также несколько стал влиявшим в областях спецификаций файловой системы и стандартов. Однако скоро в развивающиеся времена Linux, поскольку это получало широкое принятие, стандарты, характерные для Linux, начали появляться в изображение. Среди стандартов, Файловой системы Linux стандартов Hieararchy (LFHS), описывает потребность организовать системную иерархию файловой системы и местоположения именования в иерархии дерева файловой системы.

Насколько иерархия файловой системы Linux идет, и документация спецификации проекта FHS по http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/

/ каталог bin содержит несколько полезных команд, которые полезны для обоих системный администратор, а также непривилегированные пользователи. Это обычно содержит оболочки как удар, csh, и т.д..... и наиболее часто используемые команды как CP, mv, комната, кошка, ls. Поэтому и в отличие от/usr/bin, двоичные файлы в этом каталоге считаются важными. Причина этого состоит в том, что это содержит существенные системные программы, которые должны быть доступными, даже если только раздел, содержащий/, смонтирован. Эта ситуация может возникнуть, должен, необходимо восстановить другие разделы, но не иметь никакого доступа к общим каталогам (т.е. Вы находитесь в однопользовательском режиме и следовательно не имеете никакого доступа к сети). Это также содержит программы, которые загружаются, сценарии могут зависеть от.

Так, не необходимо, чтобы они были двоичными исполняемыми файлами (файлы ELF), но также и сценарии, которые являются исполняемым файлом и важны для системного функционирования, которое может войти в / каталог bin.

Кроме того, я хочу отметить здесь, что эти стандарты существовали, я предполагаю, почти больше 30 лет. В быстро изменяющиеся времена люди могут идти с новыми стандартами, которые могли бы полностью удалить текущие нотации, используемые в иерархии. Один из недавних такое животное онлайн objectRoot, который является недавно опубликованным предложением перепроектировать и удалить неудобства иерархии. Для получения дополнительной информации: http://objectroot.org/root/

1
27.01.2020, 20:22
  • 1
    "ранние дни Unix, где у людей был выбор выбрать очень хромые имена, как использовался только в стадиях разработки и не помещал очень мысль, которая в Unix ближайшего будущего будет повсеместным выбором для вычислений затем..." Это неправильно. См. этот ответ по корректной причине... справедливое замечание –  jasonwryan 11.01.2012, 23:22
  • 2
    хм.. да, другой фактор для выбора имен, как они сегодня. Спасибо @jasonwryan для ссылки. В современных системах у нас нет проблем или опасений за скорость, пропускную способность, производительность, по крайней мере за устройства ввода данных, но тем не менее мы живем былые времена. Не обязательно неудобство, но тем не менее мы должны модернизировать иерархию для сегодняшних потребностей. Objectroot пытается перепроектировать его, но истина, которая будет сказана, я понятия не имею, будет ли это иметь успех. –  Nikhil Mulley 12.01.2012, 11:00

Теги

Похожие вопросы