Listar todo o conteúdo de todos os arquivos no diretório UNIX

1

Como listar todos os arquivos de conteúdo em um diretório?

algo como ls -la | cat .

    
por PaN1C_Showt1Me 13.02.2010 / 17:45

2 respostas

4

Use o seguinte comando, recursivo:

find /path/to/folder -type f -exec cat {} \;

Versão não recursiva (devido à pressão popular):

find /path/to/folder -maxdepth 1 -type f -exec cat {} \;

    
por 13.02.2010 / 17:50
4

O seguinte comando:

find ./ -type f -exec cat {} \;

localizaria apenas arquivos ( -type f ) da pasta atual ( ./ ).

A resposta de Studer é boa, e a exclusão de diretórios é uma boa ideia, porque é um comportamento indefinido entre os unices, leia o comentário de Grawity. Aqui estão dois comportamentos conhecidos:

  • cat on Linux lançará uma mensagem de erro ao tentar catar um diretório cat: ./folder: Is a directory ).
  • cat no FreeBSD fará o dump do diretório raw, como armazenado em disco.

Se precisar de mais informações sobre o comando ou algo mais sobre ele, responda e anotei mais / ajude você.

Editar: Como o John T apontou, este comando irá entrar em todos os subdiretórios. Se você precisa apenas de arquivos cat do diretório atual, você precisaria de -maxdepth 1 , fornecendo:

find ./ -maxdepth 1 -type f -exec cat {} \;

A opção -maxdepth n também pode ser usada para limitá-la a uma quantidade n de subdiretórios, sendo 1 o diretório atual, 2 sendo o diretório atual e seus descendentes diretos e assim por diante.

    
por 13.02.2010 / 18:13