Quero obter uma lista de todos os arquivos em um diretório, como com ls
, para que cada nome de arquivo fique em uma linha separada, sem os detalhes extras fornecidos por ls -l
. Eu olhei ls --help
e não encontrei uma solução. Eu tentei fazer
ls -l | cut --fields=9 -d" "
mas ls
não usa um número fixo de espaços entre as colunas. Alguma ideia de como fazer isso, de preferência em uma linha?
ls -1
. Da ajuda:Funciona em cygwin e FreeBSD, então provavelmente não é muito específico do GNU.
fonte
solução sem tubulação :-)
Note que as opções longas só são suportadas no GNU coreutils onde BSD ls só suporta os argumentos curtos
-1
fonte
Possivelmente:
fonte
ls | cat
... ou possivelmente,ls -1
fonte
cat
não é inútil neste caso. Ele formata a saída dels
em uma coluna como OP pede.Use o comando sed para listar colunas únicas
fonte
ls -l
produz a mesma saída de sua resposta inteira. Não tenho certeza do quesed
está adicionando aqui ...Experimente isto:
Aqui
num
está o número de colunas que você deseja listar.fonte
primeiro você pode usar isso. ele exibirá um arquivo por linha.
ls -l | sed 's /(.*) (. *) $ / \ 2 /'
ou então você pode usar assim
encontrar . -maxdepth 1 | sed 's /.///'
ambas as coisas são iguais.
fonte
sed: -e expression #1, char 16: invalid reference \2 on `s' command's RHS
Isso também fará
fonte
Isso também está funcionando: echo -e "\ n $ (ls)"
fonte