encontrar em / sys / class não mostra tudo, por quê?

1

Como qualquer outra pessoa, de vez em quando eu sou obrigado a listar a estrutura de diretórios de um determinado ponto no sistema de arquivos. Eu faço isso com find /path/in/fs/ e isso produz algo como:

/path/in/fs/subfolder1
/path/in/fs/subfolder1/file1
/path/in/fs/subfolder1/subfolder2/yetanothefile
/path/in/fs/subfolder1/subfolder2/yetanothefile2
/path/in/fs/subfolder1/subfolder2/yetanothefile3
/path/in/fs/subfolder1/file2

De certa forma, isso evita intermináveis iterações de cd e ls .

Agora, eu queria listar a estrutura de diretórios no caminho /sys/class e acho que ela é insuficiente. Os próximos dois comandos mostram o comportamento estranho:

  • (1) usando cd e ls
    root@freak:/sys/class/hwmon# ls
    hwmon0  hwmon1  hwmon2
    root@freak:/sys/class/hwmon# cd hwmon0
    root@freak:/sys/class/hwmon/hwmon0# ls
    name  power  subsystem  temp1_crit  temp1_input  uevent
  • (2) usando o comando dito find no mesmo local
    root@freak:/sys/class/hwmon# find .
    .
    ./hwmon0
    ./hwmon1
    ./hwmon2

Como você pode ver, parece-me que find não me mostra tudo, o que eu acho um comportamento estranho e surpreendente. Agora eu sei que as coisas abaixo de / sys / são de alguma forma especiais. Ainda assim tudo funciona em cd ls way. Alguém tem uma resposta porque isso acontece e melhor até mesmo como eu posso fazer encontrar não esquecer o conteúdo em ./hwmon0 ./hwmon1 ... etc por exemplo?

    
por humanityANDpeace 18.03.2013 / 07:24

1 resposta

0

Quando você corre

find .

então, a opção -P , por padrão, será executada find -P .

Extraído de man find

   -P     Never follow symbolic links.  This  is  the  default  behaviour.
      When find examines or prints information a file, and the file is
      a symbolic link, the information used shall be  taken  from  the
      properties of the symbolic link itself.

é por isso que o find não mostra tudo sob /sys/class/hwmon , se você entrar e verificar se é um link simbólico, então você só precisa verificar usando find . -follow

Para mais informações, consulte man find

    
por 19.03.2013 / 08:29