Tente este:
find . -maxdepth 1 -not -type d
Como excluo diretórios ao listar arquivos no diretório atual?
ls .
^ incluirá diretórios na listagem.
Para obter exatamente o equivalente a ls .
, não é necessário mostrar diretórios ocultos.
find . -maxdepth 1 -not -type d -and -not -name '.*'
e isso ainda deixa você com './' prefixado em cada nome de arquivo. Isso não é realmente um problema, mas eu acho que é meio feio. Eu fui com:
ls -p | grep -v '/$'
E isso vai te dar uma listagem que parece a mesma, e você pode adicionar mais argumentos ls
também. Adicione um --color=always
e você obterá seus dircolors de volta ou -a
para ver os arquivos ocultos.
Eu gosto da resposta de Alexander porque ele está realmente dependendo de uma característica de sistema de arquivos do arquivo em questão para que não seja enganado nunca. Minha resposta será enganada por um arquivo que tenha um '/' como o último caractere em seu nome. Mas parece que está pedindo por problemas.
tente isto:
$ find . -type f -maxdepth 1
ou isto:
$ ls -p | egrep -v /$
$ ls -la | egrep -v ^d
Embora seja um post antigo, mas achei que isso poderia ajudar ...
$ ls -l | grep -v ^ d
Ele listará todos os arquivos, incluindo links simbólicos, arquivos de caracteres e blocos.
As soluções "find" acima perdem algumas das capacidades de ls - por exemplo: listar apenas arquivos, classificados em hora de modificação decrescente.
As respostas "ls -p | grep" não lidam elegantemente com outros elementos de ls, como -R, caso sejam desejados
A resposta a seguir, embora mais detalhada, na minha opinião, reflete o comportamento mais verdadeiro ls e a maior flexibilidade para selecionar "somente arquivos"
ls -t . | while read line; do
if [ -f $line ]; then
echo $line
fi
done
Simplesmente substitua os comutadores ls conforme desejado e o resultado será retornado apenas com arquivos. Se links e outros itens também forem necessários, será necessário fazer um pequeno retrabalho no teste para inclusão.
ls $(file --no-pad -F' ' * | grep -v directory | cut -d' ' -f1)
Com isso, você ainda pode usar outras opções que o ls
normalmente leva.
Ou ... remova -v
para listar apenas diretórios.
Ou ... substitua o diretório por qualquer outro tipo de arquivo que file
entenda e relate, como ASCII, vazio, ELF e assim por diante.