Bash: Lista de arquivos com caminhos absolutos, um por linha, nenhuma outra informação

0

Estou procurando um comando que liste todos os arquivos no diretório atual.

Requisitos:

  1. Caminhos absolutos
  2. Um arquivo por linha
  3. Nenhuma outra informação (como tamanho, permissões ...)
  4. Não mostrar pastas

O que eu tenho até agora é isso:

ls -d1 $PWD/*

O que dá:

[User@User-arch Pictures]$ ls -d1 $PWD/*
/home/User/Pictures/folder1
/home/User/Pictures/folder2
/home/User/Pictures/file1.png
/home/User/Pictures/file2.png
/home/User/Pictures/file3.png
/home/User/Pictures/file4.png

ou readlink -f $PWD/* , que fornece o mesmo resultado.

Eles satisfazem todos, menos os 4. requisitos. Como posso ajustá-lo para que ele não mostre pastas? Ou existe um comando mais simples?

    
por Johannes 02.08.2017 / 17:39

2 respostas

3
find $PWD -maxdepth 1 -type f

Lista arquivos no diretório de trabalho atual. -type f informa ao find list apenas arquivos regulares (sem pastas), -maxdepth 1 evita que o conteúdo nas subpastas apareça na saída.

    
por 02.08.2017 / 17:47
0

Você poderia dizer a ls para incluir a barra à direita após os nomes dos diretórios e enviá-la para grep .

ls -pd1 $PWD/* | grep -v /$

Edit: Vi minha falha na resposta original.

    
por 02.08.2017 / 17:46