Como eu crio uma lista estruturada de todos os arquivos e diretórios sob um diretório particular (recursivamente)?

3

Eu preciso ter uma "imagem" de um sistema de arquivos sem o conteúdo real dos arquivos - apenas todos os nomes e a estrutura, para que eu possa ler o arquivo e saber quais arquivos foram armazenados lá e como eles foram localizados. Como sempre neste tipo de casos, eu costumo acreditar que existe uma bela "maneira Unix" para conseguir isso com uma combinação de alguns utilitários de linha de comando padrão do GNU. Estou certo? O que é isso?

    
por Ivan 31.12.2011 / 02:34

2 respostas

6

Como find / -type f > /tmp/list_of_all_the_files.txt ?

    
por 31.12.2011 / 02:43
3

Você pode executar

ls -R | grep ':$' | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

Ele mostra todos os subdiretórios formatados como uma árvore.

Às vezes, há também a utilidade tree disponível em muitas distribuições de Linux. Se não, então você pode instalá-lo em aqui .

Ele fornece a seguinte saída:

~> tree -d /proc/self/
/proc/self/
|-- attr
|-- cwd -> /proc
|-- fd
|   '-- 3 -> /proc/15589/fd
|-- fdinfo
|-- net
|   |-- dev_snmp6
|   |-- netfilter
|   |-- rpc
|   |   |-- auth.rpcsec.context
|   |   |-- auth.rpcsec.init
|   |   |-- auth.unix.gid
|   |   |-- auth.unix.ip
|   |   |-- nfs4.idtoname
|   |   |-- nfs4.nametoid
|   |   |-- nfsd.export
|   |   '-- nfsd.fh
|   '-- stat
|-- root -> /
'-- task
    '-- 15589
        |-- attr
        |-- cwd -> /proc
        |-- fd
        | '-- 3 -> /proc/15589/task/15589/fd
        |-- fdinfo
        '-- root -> /
    
por 31.12.2011 / 16:07