Eu preciso de uma longa lista (vertical) de todos os nomes de arquivos de todos os arquivos em um diretório.
Como obter apenas nomes de arquivos de uma listagem ls -la
( ll
)?
Apenas os nomes, não :
drwxr-xr-x 9 USER GROUP 4096 Jul 20 10:30 filename1
drwxr-xr-x 9 USER GROUP 4096 Jul 20 10:30 filename2
drwxr-xr-x 9 USER GROUP 4096 Jul 20 10:30 filename3
drwxr-xr-x 9 USER GROUP 4096 Jul 20 10:30 filename4
drwxr-xr-x 9 USER GROUP 4096 Jul 20 10:30 filename5
Em vez disso, eu preciso apenas:
filename1
filename2
filename3
filename4
filename5
Imprimir apenas nomes de arquivos é o comportamento padrão do
ls
. Quando você adiciona-l
, está dizendo que deseja a saída "formato longo". Se você apenas remover-l
, acho que isso lhe dará o que você deseja. Você pode deixar-a
para incluir arquivos "ocultos"Além disso, como Stéphane mencionou, você pode adicionar
-1
se ainda deseja cada arquivo em sua própria linha, o que acontecerá com ou sem-1
quando redirecionado para um arquivo ou canalizado para outro comando.Se você quiser salvar isso em um arquivo, você pode usar os operadores
>
ou>>
como em qualquer comando. Consulte Redirecionamentos e Quais são os operadores de controle e redirecionamento do shell?Você pode redirecionar a saída diretamente para o arquivo usando
>
ou>>
.Por exemplo
ls -l > somefile.txt
, irá criar um arquivo chamadosomefile.txt
contendo os resultados dels -l
. Cuidado, porém, pois o single>
substituirá tudo no arquivo que você redireciona para . Using>>
irá anexar a saída ao arquivo que você escolher para gravar.EDIT:
ls -1 >> somefile.txt
é provavelmente o comando que você está procurando. Para todos os arquivos,ls -1a >> somefile.txt
.