Мне сказали запустить это:
./yiic message ./app/messages/config.php
Но я не понимаю ./
смысла, может кто-нибудь уточнить, пожалуйста.
Примечание: поверьте мне, мы не можем гуглить это. Я пробовал:
./ Значение ./ Ubuntu
Это было так же, как ничего. :(
Ответы:
./
или просто.
сокращение от Unix для текущего каталога.Вы должны указать это, когда текущий каталог не находится в вашем PATH. PATH - это список папок, в которых выполняется поиск при запуске программы. (Вы можете определить это, написав
echo $PATH
.) Если исполняемый файл отсутствует в вашей переменной PATH, для его запуска необходимо указать папку, в которой он находится. Это можно сделать, указав полный путь к файлу, но если файл находится в текущий каталог, вы можете использовать./
как стенографию.Точно так же
../
или просто..
является сокращением для каталога выше текущего.источник
.
. Это потому, что автоматическое использование текущего каталога является дырой в безопасности. Представьте, что кто-то другой делает программу, называет ееls
и васcd
в свой каталог, а затем набираетls
Каждый каталог в командной строке имеет два «специальных каталога», которые называются
.
и..
. Это сокращение соответственно для текущего каталога и каталога, содержащего текущий каталог.Так, например,
cd ./more/directory/names
просто означает «начать с текущего каталога и продолжить путь». Точно так же командаcd ..
означает «изменить один каталог вверх.Если вам нужно имя вашего текущего каталога, вы можете использовать
pwd
команду. Также, если вы используете-a
флаг дляls
, вы можете увидеть эти две специальные директории. То естьls -a
выведет список, начинающийся с.
и..
.источник
Другие уже объяснили, что
.
и что..
означает (текущий каталог и родительский каталог соответственно). Это относится ко всем путям.Когда вы открываете терминал, вы обычно начинаете с вашего домашнего каталога:
~
(который расширяется до/home/username
). Все приведенные ниже пути эквивалентны, если ваш текущий рабочий каталог/home/username
:/home/username
.
../username
../../home/username
../../../home/username
(родительский каталог/
все еще/
)./././././.
(текущий каталог в текущем каталоге в ...)./
(конечные косые черты разрешены для каталогов)/home////username///
(и так многократные косые черты)Вы не путайте
./program
с. program
../program
запускает файл в текущем каталоге с установленным битом выполнения.. ./program
это вещь bash и может быть записана так,source ./program
что она читает команды bash изprogram
файла в текущем каталоге и выполняет их в текущей оболочке.Если вам интересно, почему вы можете просто запустить
gedit
вместо,/usr/bin/gedit
а неprogram
вместо./program
или/home/username/program
, посмотрите соответствующий вопрос:источник
Это значит начать с
current directory path
.Предположим, у вас есть что-то
path
вроде этого:и внутри
/usr/bin/
есть исполняемый файл с именемyiic
.Если вы выпустите
yiic
его, начнется тот в/usr/bin/
.При выдаче
./yiic
вы говорите системе искать в текущем каталоге этот исполняемый файл.источник
/home/mysuser/
и что я перемещаюсь там с помощьюcd /home/myuser
. Оказавшись внутри, я поверил, что делать просто yiic, это должно сработать, потому что я звонил в тот каталог. Но он говорит, что команда не файл. Если я делаю то же самое и использую ./, тогда он работает правильно ... Не могли бы вы уточнить немного больше?.
это специальный файл внутри папки, который вы можете видеть, когда делаетеls -la
в каталоге;)