Seqüência aninhada de diretórios!

0

Quando pesquisei um arquivo em que era possível (semi) controlar o brilho, acidentalmente encontrei uma sequência aninhada de diretórios, como abaixo

aneesh@nb-14:~$ cd /sys/class/graphics/fb0/device
aneesh@nb-14:/sys/class/graphics/fb0/device$ cd graphics/fb0/device
aneesh@nb-14:/sys/class/graphics/fb0/device/graphics/fb0/device$ l
driver@  graphics/  modalias  power/  subsystem@  uevent
aneesh@nb-14:/sys/class/graphics/fb0/device/graphics/fb0/device$ 

  • Qual é o motivo por trás de tais sequências aninhadas de diretórios?

  • Como isso foi possível? Eu descobri uma possível resposta para isso. Por exemplo, para criar uma sequência /a/b/a/b/a/b... , pode criar um link para o diretório /a e colá-lo na pasta /a/b . Essa é a única maneira pela qual sequências aninhadas podem ser formadas?

    Simbolicamente não é óbvio: Para verificar isso eu tentei dar o comando l (veja acima) e encontrei símbolos em cada arquivo / diretório. Aprendi com este fórum em si que, no resultado de l , o símbolo @ é para indicar drivers e / para diretórios. Mas nenhuma indicação simbólica para mostrar que uma determinada pasta é realmente um link para outra! Além disso, não há entrada manual sobre l para descobrir qual símbolo (se houver) indica o link do arquivo.

        
  • por Karthik C 03.06.2013 / 06:56

    1 resposta

    0

    O loop (aninhamento) que você vê realmente serve Um propósito muito importante.

    Imagen "Dê-me o outro dispositivo no mesmo dispositivo que esse dispositivo". Eu sei que isso é confuso no contexto da placa de vídeo, mas pense na placa de som.

    "Dê-me as outras saídas no mesmo cartão que a saída 5"

    Para fazer isso, você precisa de algum tipo de "filhos dos meus pais", que é exatamente o que você tem aqui. "Filhos de meus pais" podem ter apenas 1 entrada, mas isso é aceitável.

    Para adicionar mais complexidade, a pasta / sys nem está realmente lá. É uma enumeração de materiais do kernel. Então, é como uma "API fácil de usar" para acessar dados do kernel. Portanto, isso pode não apenas levar a situações como o seu exemplo, mas nem mesmo arquivos realmente são executados, portanto, tudo bem se funcionar.

    Para ver se algo é um link, você sempre pode usar ls -la para exibir detalhes mais detalhados. Mas tenha em mente que esses arquivos não são reais, e podem não ser links simbólicos no verdadeiro sentido, e lá é totalmente possível ter recursividade sem fazer nada "errado" ou usando links / etc.

        
    por coteyr 03.06.2013 / 07:11