В чем разница между `command` и`. / Command`?

Я обнаружил, что иногда я использую command для запуска команды, но иногда я использую ./command для запуска другой команды.

В чем разница?

3
задан 3 April 2013 в 18:13

2 ответа

Выполнение xx ищет каталоги, перечисленные в PATH переменная среды для названного файла xx. Первый исполняемый файл, который это находит (ли двоичный файл или сценарий), это выполняется. Это не смотрит в текущем каталоге, если . перечислен в PATH, который не рекомендуется.

Выполнение ./xx петляет названный xx это расположено в текущем каталоге, если существует исполняемый файл с тем именем там.

Для петляния путем определения его местоположения необходимо включать a / символ. Если существует нет / в команде (на самом деле, первая команда, которая является тем, что определяет название файла, который будет выполняться), это ищет PATH для него. Если существует a /, затем первая команда взята для обращения к определенному файлу местоположением.

Таким образом, ./xx отличается от xx из-за / то, что это содержит.

Конечно, /xx не работал бы правильно - это попытается петлять названное xx расположенный в корневом каталоге, /. Поскольку . представляет текущий каталог, ./xx выполнения xx там.

10
ответ дан 3 April 2013 в 18:13

ОТВЕТ В БОЛЕЕ ПРОСТЫХ СЛОВАХ:

В Приглашении оболочки мы можем выполнить команды... Команда является только названием исполняемого файла, сохраненного в особенности каталог такой так же как: мусорное ведро, sbin... Мы можем назвать исполняемые файлы, не определяя дополнительное имя.

user@comp~# command

, Когда мы вводим команду, файл выполняется сохраненный в таком конкретном каталоге.

user@comp~# ./command

В этом случае использования ./command мы звоним в исполняемый файл, который сохранен в текущем быстром пути (Существующий рабочий Каталог). Можно узнать текущий рабочий каталог оболочки с командой pwd.

0
ответ дан 3 April 2013 в 18:13

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

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