Liste recursivamente arquivos com nomes de arquivos, nomes de pastas e permissão

9

Existe alguma maneira de listar arquivos digitando um comando no shell que lista todos os nomes de arquivos, nomes de pastas e suas permissões no CentOS?

user1038814
fonte
Oi, obrigado pela resposta. Sim, por exemplo, se eu tiver a seguinte estrutura: Pasta A> Arquivo 1, Arquivo 2, Pasta AA [Arquivo AA1, Arquivo AA2] etc, portanto, desejo listar todas as pastas e todos os arquivos dessas pastas, juntamente com suas permissões em um arquivo arquivo de texto. Espero que faça sentido?
User1038814

Respostas:

11

Dê uma olhada na árvore , talvez seja necessário instalá-la primeiro. Por árvore padrão não mostra permissões, para mostrar as permissões próximas ao nome do arquivo executado

tree -p

que listará recursivamente todas as pastas e diretórios no diretório atual, incluindo permissões.

Ulrich Dangel
fonte
9

ls -lRlista o conteúdo dos diretórios recursivamente. A saída é difícil de processar automaticamente, mas para a navegação manual pode ser boa porque é com isso que você está familiarizado.

O findcomando lista arquivos recursivamente. Você pode personalizar sua saída, por exemplo, o seguinte comando imprime permissões como ls -lantes de cada nome de arquivo:

find -printf '%M %p\n'

Essa saída pode ser processada mecanicamente se não houver novas linhas nos nomes dos arquivos. Se você substituir \n(nova linha) por \000(byte nulo), poderá processar a saída com ferramentas que suportam registros separados por nulo.

Ambos lse findapenas imprimem permissões unix tradicionais, não acessam listas de controle. Para obter uma lista recursiva de todas as permissões de arquivo, incluindo informações da ACL, execute

getfacl -R .

A saída pode ser processada mecanicamente (caracteres especiais são classificados); em particular, ele pode ser alimentado para setfacl --restorereplicar as permissões para outra árvore com os mesmos nomes de arquivo.

Gilles 'SO- parar de ser mau'
fonte
5

Você quer findisso.

find some/dir -ls > output.txt
Ignacio Vazquez-Abrams
fonte
-1

lsé um comando para listar arquivos de computador nos

ls -litens da lista Unix no diretório
ls -Rlistar recursivamente o arquivo

ls -lR
Abhi
fonte
Isso foi na resposta de Gilles. Além disso, sua explicação ls -lnão explica o que -lé isso.
jesse_b