Почему 'те же' исполняемые файлы в '/usr/bin /' и '/usr/bin/X11 / '? Они - действительно то же?

С Ubuntu 14.04 LTS. Я работаю над заказной установкой gcc то, что я хочу поместить вместе с поддерживаемой версией, которая слишком стара в моих целях.

Моему компьютеру установили версию 4.8.4 из репозитория Ubuntu, и я смотрел на whereis gcc видеть, как gcc файлы обычно располагаются в файловой системе.

Я затем заметил, что те же исполняемые файлы хранятся оба в /usr/bin/ и /usr/bin/X11 (использование ll -L на обеих папках). Следующие вопросы возникают:

  • В целом, какова цель /usr/bin/X11/ в отличие от /usr/bin/? Я изучил стандартную иерархию файловой системы, и /usr/bin/X11/ не стандартный каталог;
  • В частности, это корректный, чтобы предположить что файлы в /usr/bin/X11/ просто подражатель тех, которые в /usr/bin/ как правило? Новое gcc имеет нет <mount point>/bin/X11 папка в ее дереве. Это полезно для знания для перенаправления с уверенностью существующих символьных ссылок в /usr/bin/X11 к исполняемым файлам новой версии (no-devil-in-the-details точка осторожности).

Спасибо за размышление вперед.

1
задан 11 February 2017 в 13:55

2 ответа

Когда-то давно не было никакого GUI. И когда X-оконная система появилась, она шла с поразительными графическими программами такой как xterm и xclock и так далее, и с утилитами такой как xrdb и xmodmap. И люди раньше помещали те графические программы в специальном каталоге, который вовремя стал /usr/bin/X11. (X11, потому что окончательная версия X-протокола равняется 11, конкретно X точек выпуска 6 версии 11 4, X11R6.4; прежде чем X11 там были и X9 и X10.)

Но в наше время все исполняемые файлы живут в /bin и /usr/bin и /sbin и /usr/sbin; в то время как /usr/bin/X11 не служит никакой цели больше, это все еще создается как символьная ссылка на /usr/bin для хранения совместимости со старыми системными администраторами и старыми сценариями, которые привыкли к xterm быть /usr/bin/X11/xterm.

Таким образом, ответ - то, что это не исполняемые файлы, которые являются тем же в /usr/bin и /usr/bin/X11: это /usr/bin/X11 самостоятельно, который совпадает с /usr/bin.

Если Вы посмотрите, то Вы заметите это /usr/bin/X11 символьная ссылка на .. Это называют относительной символьной ссылкой: /usr/bin/X11 будучи файлом в /usr/bin и символьная ссылка, указывающая на текущий каталог, ., это делает /usr/bin/X11 синоним для /usr/bin.

3
ответ дан 3 December 2019 в 06:54

Для обнаружения то, на что на самом деле указывают путь и файл, сделайте

$ realpath /usr/bin/X11
/usr/bin

Забавный вариант:

$ myDir=/usr/bin/X11
$ echo $(realpath -s $myDir) is in fact $(realpath $myDir)
/usr/bin/X11 is in fact /usr/bin

Это - онлайн страница справочника realpath.

Спасибо @AlexP и @muru для помещения меня на правильном пути

1
ответ дан 3 December 2019 в 06:54

Другие вопросы по тегам:

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