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


Respostas:


4

Use o seguinte comando, recursivo:

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

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

find / caminho / para / pasta -maxdepth 1 -tipo f -exec cat {} \;


1
Isso também recairia em subdiretórios, tenha cuidado.
John T

1
Ambas as versões estão agora!
Studer

4

O seguinte comando:

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

encontraria 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 do grawity. Aqui estão dois comportamentos conhecidos:

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

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

Editar: Como John T salientou, este comando vai Entre em todos os subdiretórios. Se você precisar apenas de arquivos de cat do diretório atual, você precisaria -maxdepth 1, dando assim:

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

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


1
editar só para você;)
Studer

1
Em Linux , cat lançaria uma mensagem de erro. No FreeBSD, por exemplo, ele digitaria o diretório raw como ele é armazenado no disco. (Não é muito útil.)
grawity
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.