С 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 точка осторожности).Спасибо за размышление вперед.
Когда-то давно не было никакого 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
.
Для обнаружения то, на что на самом деле указывают путь и файл, сделайте
$ 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 для помещения меня на правильном пути