Foi-me dito para executar isso:
./yiic message ./app/messages/config.php
Mas eu não entendo o ./
significado, alguém pode esclarecer por favor.
Nota: Acredite, não podemos pesquisar no Google. Eu tentei:
./ significado ./ ubuntu
Era o mesmo que nada. :(
Respostas:
./
ou apenas.
é uma abreviação unix para o diretório atual.Você precisa especificá-lo quando o diretório atual não estiver no seu PATH. O CAMINHO é a lista de pastas pesquisadas quando você executa um programa. (Você pode determiná-lo escrevendo
echo $PATH
.) Se um arquivo executável não estiver no seu PATH, para executá-lo, você precisará especificar a pasta em que está. Você pode fazer isso fornecendo o caminho completo para o arquivo, mas se o arquivo estiver em o diretório atual, você pode usar./
como abreviação.Da mesma forma,
../
ou apenas..
é uma abreviação para o diretório acima do atual.fonte
.
. Isso ocorre porque o uso automático do diretório atual é uma falha de segurança. Imagine alguém mais faz um programa, nomes quels
e vocêcd
em seu diretório, em seguida, digitels
Todo diretório na linha de comando possui dois "diretórios especiais" chamados
.
e..
. Estes são atalhos para, respectivamente, o diretório atual e o diretório que contém o diretório atual.Por exemplo,
cd ./more/directory/names
apenas significa "iniciar no diretório atual e continuar no caminho". Da mesma forma, o comandocd ..
significa "altere um diretório para cima.Se você deseja o nome do seu diretório atual, pode usar o
pwd
comando Além disso, se você usar o-a
sinalizador parals
, poderá ver esses dois diretórios especiais. Ou seja,ls -a
produzirá uma lista começando com.
e..
.fonte
Outros já explicaram o que
.
e o que..
significa (diretório atual e diretório pai, respectivamente). Isso se aplica a todos os nomes de caminho.Quando você abre um terminal, geralmente inicia no diretório inicial:
~
(que se expande para/home/username
). Os caminhos abaixo são todos equivalentes, desde que o diretório de trabalho atual seja/home/username
:/home/username
.
../username
../../home/username
../../../home/username
(o diretório pai de/
ainda está/
)./././././.
(o diretório atual no diretório atual no ...)./
(barras finais são permitidas para diretórios)/home////username///
(e também várias barras)Você não confundir
./program
com. program
../program
executa um arquivo no diretório atual com o bit de execução definido.. ./program
é uma coisa do bash e, alternativamente, pode ser escrito, poissource ./program
lê os comandos doprogram
arquivo no diretório atual e os executa no shell atual.Se você se pergunta por que simplesmente pode executar em
gedit
vez de/usr/bin/gedit
e não emprogram
vez de./program
ou/home/username/program
, consulte a pergunta relacionada:fonte
Significa começar do
current directory path
.Vamos supor que você tenha algo
path
assim:e por dentro
/usr/bin/
existe um executável chamadoyiic
.Se você emitir
yiic
, iniciaria o arquivo/usr/bin/
.Ao emitir,
./yiic
você instrui o sistema a procurar dentro do diretório atual por este executável.fonte
/home/mysuser/
e que eu navegue lá usandocd /home/myuser
. Uma vez lá dentro, eu acreditava que fazer o yiic deveria funcionar porque eu liguei enquanto estava no diretório. Mas ele diz que o comando não arquiva. Se eu fizer o mesmo e usar o ./, ele funcionará corretamente ... Você pode esclarecer um pouco mais?.
é um arquivo especial dentro de uma pasta que você pode ver ao fazer umls -la
no diretório;)