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.

PaN1C_Showt1Me
fonte

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 {} \;

Studer
fonte
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.

samueldr
fonte
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