O melhor que pude encontrar via Google / man ls
foi:
ls -l | grep -v '^total'
Falta alguma coisa nas bandeiras ls
?
Além disso, por que o tamanho total está em kb, independentemente do sinalizador -h? arranhar isso, parece que sim, não tenho certeza do que estava vendo naquele momento.
ls -l | tail -n+2
, para o resto eu não tenho uma resposta.lsl
. Apenas 3 letras;) oh e ls -lh me mostram 1,2K de tamanhos.Respostas:
Olhando no código fonte de
coreutils
, descobri quetotal
sempre será exibido ao usar a-l
opção em diretórios .O uso da
-d
opção para listar entradas em vez do conteúdo do diretório é ocultototal
. Mas se você executar isso sem argumentos (ou em um diretório), ele mostrará apenas o diretório e não seu conteúdo. Portanto, você precisa de curingas.*
corresponde a todos os arquivos e também aos arquivos.*
ocultos (o que corresponde à-a
opção):Quanto à
-h
opção, funciona para mim. 1118360 bytes aparecem como 1,1M. Arquivos menores que 1024 são exibidos em bytes.fonte
ls
página do manual à letra ou considerar o seguinte:ls /
pode ser interpretado como "liste a entrada/
se for um arquivo ou o conteúdo do diretório/
se for um diretório". Usar-d
remove a última condição e sempre imprimirá a entrada em vez do conteúdo do diretório. Isso se aplica independentemente de um caminho ser um arquivo ou diretório.O uso de curingas para evitar a
ls
execução da listagem de diretórios é subótimo, pois impede que você usels
opções como--almost-all
.Como a sugestão de Enzotib , a maneira mais simples de removê-lo é canalizá-lo
tail
para cortar a primeira linha. No entanto,ls
ele detectará que sua saída é um canal e não interativo e alterará seus padrões de maneira indesejada. Portanto, para torná-lo robusto, você também deve adicionar algumas opções:--color=always
: continue mostrando cores--hide-control-chars
: imprime?
nos nomes de arquivos no lugar dos caracteres de controle que podem atrapalhar a saída do consoleEu tenho um script
~/bin/l
(você também pode usar um alias do Bash em~/.bash_aliases
):Você também pode adicionar outras
ls
opções que desejar por padrão, por exemplo--group-directories-first --time-style='+%FT%T.%N%:::z' --indicator-style=slash
.fonte
ls -l *
Fornecerá o conteúdo da pasta "normalmente nomeado" sem o
total
. Isso pode ser adequado às suas necessidades. Infelizmente, ele não fornecerá osdot
arquivos prefixados. Se você usar,ls -l * .*
você terá uma bagunça, pois o linux navegará na árvore.Observe que o prefixo de ponto pode significar a pasta ou, com um curinga, significa a pasta acima, para que não ajude a escolher arquivos regulares com prefixo de ponto. Esta parece ter sido uma decisão infeliz de design.
fonte
Nota:
O seguinte não funciona se você tiver um arquivo chamado "total ...."
fonte