Por que existem 2 diretórios com o mesmo conteúdo?

5
  1. cd /proc/$$/root/bin
  2. cd /bin

Depois de executar o comando ls no diretório, descobri que o conteúdo de ambos os diretórios é o mesmo (o que não é nada além de uma lista de comandos).

Existe algum motivo específico para isso ter a mesma lista de comandos em ambos os diretórios?

    
por snoop 23.03.2016 / 11:02

2 respostas

20

/proc é um sistema de arquivos "virtual" que expõe alguns núcleos e detalhes relacionados ao processo.

$$ é uma variável de shell que fornece o PID do shell que o executa.

/proc/$$/root é um link simbólico para o diretório raiz, conforme visto pelo shell atual. Isso pode mudar no caso de você estar chrooting .

Em suma, os dois parecem idênticos porque eles são o mesmo diretório. Se você executar ls -ld /proc/$$/root , verá que é um link simbólico para / e, portanto, /proc/$$/root/bin e /bin são o mesmo diretório.

    
por Uqbar 23.03.2016 / 11:20
0

Isso porque eles são, na verdade, os mesmos diretórios¹:

$ test /proc/$$/root/bin -ef /bin; echo $?
0

(O teste -ef verifica se dois caminhos se referem ao mesmo objeto de arquivo.)

O mesmo vale para /proc/$$/root e / , porque

$ readlink /proc/$$/root
/

¹ a menos que você esteja em um ambiente chroot , o que pode apontar /proc/$$/root para um diretório diferente.

    
por David Foerster 23.03.2016 / 23:59