O que "." E ".." significam quando estão em uma pasta?

34

quando eu costumava ls -aexibir arquivos ocultos na pasta, havia 2 arquivos ocultos criados por padrão, qual é o significado desses dois arquivos .e ..?

ls -a

Produz

.  ..
mr_eclair
fonte
Eu usá-los muito quando eu faço uma ls -lavez que vai me mostrar as permissões e propriedade no diretório Estou em e o diretório acima do que eu estou dentro.
Marco Ceppi
não tenho representante suficiente aqui para votar para encerrar, mas coloquei uma bandeira nesta pergunta, pois é uma pergunta que pode ser respondida em 3 segundos pesquisando no google (e porque houve uma discussão recente sobre perguntas que são fáceis demais no blog SO).
zzzzBov
11
^ zzzzBov Obrigado em espanhol por sua generosidade.
Mr_eclair 29/07

Respostas:

40

. é a pasta atual.

.. é a pasta acima da pasta atual - a pasta que contém a pasta atual.

Às vezes, você vê esse único ponto em uso quando alguém deseja executar um script a partir do diretório inicial. Por exemplo: ./install-app.sh. Isso significa que o arquivo "install-app.sh" está no diretório atual. Seria igualmente válido fazer /home/username/directory/install-app.sh. Da mesma forma, você também pode fazer ../install.app se o arquivo estiver no diretório pai. A razão pela qual é dessa maneira não é apenas para navegação, mas também para que não seja possível ocultar acidentalmente aplicativos do sistema simplesmente atribuindo um nome errado ao arquivo em seu diretório pessoal.

dv3500ea
fonte
100% correto. Pense neles como ganchos, que estão em todos os diretórios. Eles são usados ​​exclusivamente para navegação. Você verá que esse não é apenas um padrão Linux, mas também no Windows. Provavelmente o mesmo no unix e no mac também, mas eu nunca brinquei em nenhum dos seus prompts de comando.
28811 Ctuchik
11
cd / ; cd ..: P
htorque 28/07
11
Também é o mesmo no FreeBSD, então imagino que também seja assim no mac, já que o mac é baseado no Darwin BSD.
Azendale 28/07
htorque: você é uma pessoa religiosa, talvez? :)
Jo-Erlend Schinstad
Está no Mac OS X (que funciona como qualquer outro Unix, embora a GUI oculte parte dele). O Mac OS Classic não os tinha; ::foi usado para o diretório anterior. Caminhos sem :eles eram o diretório atual. Caso contrário, era esperado um caminho completo (começando com o nome do disco), com os componentes delimitados por :. Ex:Macintosh HD:System Folder:Finder
derobert 28/07
4

Esses são hardlinks para os diretórios próprio (.) E pai (..). Eles são criados quando você cria um diretório. Eles nunca podem ser excluídos (sem excluir o diretório apontado por eles).

Se você criar um diretório:

mkdir /tmp/foo

você pode ver que na verdade existem 2 hardlinks para / tmp / foo:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

o primeiro é do diretório / tmp / apontando para / tmp / foo e o segundo é o '.' com em / tmp / foo / apontando para ele mesmo.

Michał Šrajer
fonte
2

Além disso, observe que você pode usar ls -A(em vez de ls -a) para listar todos os arquivos, incluindo arquivos ocultos, mas excluindo os diretórios .e ...

Paddy Landau
fonte
0

. pasta atual

.. pasta principal

RobinJ
fonte