На самом деле это ничего не означает и проигнорировано.
Это часто происходит, когда произведено от нескольких мест, объединен, и не ясно, кто задание, это должно добавить наклонные черты, таким образом, обе стороны делают это, и Вы заканчиваете с двумя из них. Семантически в случае пути к каталогу, не имеет никакого значения и будет проигнорирован большинством программ.
Существуют другие ситуации в мире Unix, где у них есть значение. Иногда в начале пути они могли инициировать поиск пути самбы вместо пути локальной файловой системы, или после протокола в nfs они могут указать, что имя хоста, однако особенно в случае запаздывающей наклонной черты как Вы дало как пример, это не должно иметь значения очень.
Ради Вашей исправности как администратор или программист необходимо все еще избежать этих случаев по мере возможности. Вы никогда не знаете, когда что-то будет проанализировано неправильно, но если Вы приезжаете, Ваш путь не волнуется об этом.
Нам не обязательно нужны они оба, но у нас есть они оба из-за истории Unix и его кратности версий.
Из их соответствующих страниц справочника:
завершение работы более общего назначения, и более мощно, в то время как перезагрузка является более дружественной и легче помнить.
завершение работы позволяет Вам указывать временный аргумент (для перезапуска за 5 минут, например) и позволяет Вам делать много вещей помимо перезагрузки, включая:
Однако, если Вы просто хотите перезагрузить систему теперь, легче ввести reboot
чем shutdown -r now
.
Две команды делают что-то другое, однако они могут закончить тем, что назвали друг друга, который является, почему они, кажется, делают то же самое!
reboot
вызовет ядро для фактического инициирования аппаратной перезагрузки. Однако это только сделает это, если система будет готова к завершению работы - все демоны и пользовательские процессы должны быть остановлены, размонтированные файловые системы, и т.д. Таким образом, это проверяет систему runlevel, и если это не будет 0 или 6, то затем это на самом деле вызовет shutdown
команда для Вас.
shutdown
заставляет систему runlevel быть измененной. Изменение runlevel (к 0 для останова или 6 для перезагрузки) запускает много скриптов в/etc/rc0.d или rc6.d, которые закрывают демонов, размонтировали файловые системы и т.д. Наконец эти сценарии вызывают halt
или reboot
- на этот раз система находится в корректном runlevel, и они сообщают ядру к перезагрузке (или останов).
В дополнение к тому, что записал бунтарь, между этими двумя программами существует важное различие: shutdown
находится в /sbin
, в то время как reboot
находится в /usr/bin
.
Почему это имеет значение, Вы спрашиваете? Я скажу Вам.
Вещи под /usr
те, которые не должны быть доступными, пока система не загружается достаточно далеко, что система минимально функциональна. Каталоги верхнего уровня, которые традиционно никогда не монтируются в отдельных файловых системах — /bin
, /etc
, /sbin
, и т.д. — как ожидают, будут доступны, в то время как система достигает этого минимально полезного состояния. Существуют различные последствия этого дизайна; например, это - плохой стиль для записи пункта "остановки" сценария SysV init, который использует программы в /usr/bin
если существует альтернатива в /bin
или /sbin
.
shutdown
ключевая утилита, один всегда доступный. reboot
утилита удобства только.
reboot
находится в /sbin
в Debian (с SysVinit) и Ubuntu (с выскочкой).
– Gilles 'SO- stop being evil'
14.05.2011, 00:16
shutdown
используйте теперь в качестве значения по умолчанию. Не пытайтесь получить справку для завершения работы сshutdown -h
когда-либо, особенно не на сервере где-нибудь в центре обработки данных. – Residuum 10.10.2011, 17:17