ls

De LinuxPédia
Ir para: navegação, pesquisa

O comando ls é fundamental para o uso do terminal em sistemas Unix. Sua função é listar arquivos e seus atributos. O ls faz parte de um pacote GNU/Linux chamado coreutils que disponibiliza vários utilitários essenciais ao sistema. Apesar de ser um comando amplamente utilizado muitos não estão cientes de todo o poder dessa ferramenta.

Sintaxe do comando

ls [opções]... [arquivo]...


As opções podem ser:

-a ; --all Não ignora entradas começando com . (arquivos começando com . são ocultos nos sistemas Unix)
-A ; --almost-all Não lista as entradas implícitas . e ..
--author Com -l, emite o autor de cada arquivo
-b ; --escape Emite escapes em octal para caracteres não-gráficos
--block-size=TAMANHO Usa blocos de TAMANHO bytes
-B ; --ignore-backups Não lista as entradas implícitas terminadas com ~
-c Com -lt: ordena por, e mostra, ctime. Com -l: mostra o ctime e ordena por nome
-C Lista as entradas em colunas
--color'[=QUANDO]' Controla se usa cores para distinguir os tipos de arquivo. QUANDO pode ser "never" (nunca), "always" (sempre) ou "auto" (automaticamente)
-d ; --directory Lista os diretório em vez de seu conteúdo e não interpreta ligações simbólicas
-D ; --dired Gera a saída projetada para modo "dired" do Emacs
-f Não ordena, habilita -aU, desabilita -ls --color
-F ; --classify ) às entradas
--file-type Similar, exceto que não anexa "*"
--format=PALAVRA "across" (-x), "commas" (-m), "horizontal" (-x), "long" (-l), "single-column" (-1), "verbose" (-l), "vertical" (-C)
--full-time O mesmo que -l --time-style=full-iso
--group-directories-first Lista os diretórios antes de listar os arquivos. Permite usar a opção --sort, mas o uso de --sort=none (-U) desabilita o agrupamento de diretórios.
-G ; --no-group Em lista longa (-l), não emite os nomes de grupo
-h ; --human-readable Com -l, emite os tamanhos em formato inteligível
--si Similar, mas usa potências de 1000, e não de 1024
-H ; --dereference-command-line Segue as ligações simbólicas listadas na linha de comando
--dereference-command-line-symlink-to-dir Segue toda ligação simbólica da linha de comando que apontar para um diretório
--hide=PADRÃO Não lista entradas implícitas que coincidam com o PADRÃO em sintaxe shell (ignorado quando se usa -a ou -A)
--indicator-style=PALAVRA Anexa o indicador de tipo no estilo PALAVRA para os nomes das entradas: "none" (nenhum, padrão), "slash" (-p), "file-type" (--file-type), "classify" (-F)
-i ; --inode Emite o número de índice de cada arquivo
-I ; --ignore=PADRÃO Não lista as entradas implícitas que coincidam com o PADRÃO (em sintaxe shell)
-k O mesmo que –block-size=1K
-l Usa o formato de lista longa
-L ; --dereference Quando mostrar informações de uma ligação simbólica, mostra as do arquivo a quem ela referencia, e não do arquivo tipo ligação em si
-m Preenche toda a largura com uma lista de entradas separadas por vírgula
-n ; --numeric-uid-gid Como -l, mas lista usuário e grupo em números ID
-N ; --literal Emite nomes de entradas de forma crua (não trata, por exemplo, caracteres de controle de forma especial)
-o Como -l, mas não lista informações sobre o grupo
-p ; --indicator-style=slash Anexa o indicador / aos diretórios
-q ; --hide-control-chars Emite ? ao invés de caracteres não gráficos
--show-control-chars Emite caracteres não gráficos como são (padrão seja um terminal)
-Q ; --quote-name Coloca os nomes das entradas entre aspas
--quoting-style=PALAVRA Usa estilo de citação PALAVRA para os nomes das entradas: Palavra = literal, locale, shell, shell-always, c, escape
-r ; --reverse Inverte a ordem de ordenação
-R ; --recursive Lista subdiretórios recursivamente
-s ; --size Mostra o tamanho alocado para cada arquivo, em blocos
--sort=PALAVRA Ordena por PALAVRA em vez de pelo nome: none -U, extension -X, size -S, time -t, version -v (nenhum, extensão, tamanho, hora, versão)
--time=PALAVRA Com -l, mostra a hora como PALAVRA em vez do horário de modificação: Palavra: atime -u, access -u, use -u: último acesso, ctime -c, status -c: última modificação
--time-style=ESTILO Com -l, emite os horários usando o estilo ESTILO: FORMATO é interpretado como em "date"; se for FORMATO1, FORMATO2, FORMATO1 se aplica a arquivos não recentes, e FORMATO2 aos recentes; se ESTILO tem como prefixo "posix-", ESTILO só faz efeito fora da localidade POSIX
-t Ordena pelo horário de modificação
-T --tabsize=COL Assume paradas de tabulação a cada COLS em vez de 8
-u com -lt: ordena e exibe por data de acesso com -l: exibe o tempo de acesso e ordena por nome sem nenhum parâmetro, ordena por data de acesso
-U Não ordenar; exibe as entradas na ordem do diretório
-v Ordena pela ordem natural dos números de versão dentro do texto
-w ; --width=COLS Assume a largura da tela como COLS
-x Lista as entradas por linha em vez de por coluna
-X Ordena por ordem alfabética das extensões das entradas
-Z ; --context Emite qualquer contexto de segurança SELinux de cada arquivo
-1 Lista arquivos por linha
--help Exibe a ajuda
--version Informa a versão

Exemplos de utilização

Listar arquivos de uma pasta

Listar o conteúdo de uma pasta, nesse caso a pasta é /home/john/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64:

john@PC:~/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64$ ls
bin  ChangeLog  COPYING  data  README  run_game.sh

Lista um arquivo por linha exibindo mais detalhes

Lista arquivos um por linha e mostra os atributos de permissão:

Mais detalhes olhar em permissões de acesso:

john@PC:~/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64$ ls -l
drwxr-xr-x  2 nimai nimai  4096 Nov 26  2013 bin
-rw-r--r--  1 nimai nimai 10984 Nov 24  2013 ChangeLog
-rw-r--r--  1 nimai nimai 32521 Nov 24  2013 COPYING
drwxr-xr-x 15 nimai nimai  4096 Nov 26  2013 data
-rw-r--r--  1 nimai nimai  2110 Nov 24  2013 README
-rwxr-xr-x  1 nimai nimai    41 Abr  9  2010 run_game.sh

As propriedades dos elementos da pasta são mostrados em 9 campos. Usaremos como exemplo o diretório bin:

drwxr-xr-x  2 root root  4096 Nov 26  2013 bin

1 – O primeiro campo é formado de um só caractere e nesse exemplo é a letra d indicando que bin é um diretório. Os valores possíveis são:


l → indica que se trata de um link

- → O hífen indica que se trata de um arquivo

c → indica dispositivo de caracter (dispositivo que é representado por arquivo e se comunica com o Kernel por meio de caracteres como por exemplo interface serial /dev/ttys0)

b → Indica dispositivo de bloco (dispositivo que é representado por arquivo e se comunica com o Kernel por meio de blocos como por exemplo um HD /dev/sda)

s → Sockets Criam pontos de comunicação entre processos cliente-servidor

p → pipes realizam comunicação entre processos na mesma máquina.


2 – O segundo campo indica as permissões. Nesse exemplo são rwx para o dono rx para o grupo e x para outros.


3 – O terceiro campo é um número nesse exmplo é 2 e indica a quantidade de links que o diretório bin tem no sistema.


4 – Usuário dono do diretório, nesse caso o root


5 – Grupo ao qual pertence o dono do diretório, nesse caso o grupo é root.


6 – tamanho do arquivo ou diretório (para ver o tamanho de forma mais legível usamos o comando -lh)


7 – Data da criação do diretório.


8 – hora da criação


9 – nome do arquivo, link ou diretório.

Listar arquivos ocultos

Exibe todos os arquivos incluindo os ocultos e implícitos:

john@PC:~/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64$ ls -a
.  ..  bin  ChangeLog  COPYING  data  README  run_game.sh

É claro que esse comando pode ser usado em conjunto com outros. Por exemplo com o -l ficaria assim:

john@PC:~/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64$ ls -a -l
drwxr-xr-x  4 nimai nimai  4096 Fev 14 16:35 .
drwxr-xr-x 67 nimai nimai  4096 Fev 14 13:32 ..
drwxr-xr-x  2 nimai nimai  4096 Nov 26  2013 bin
-rw-r--r--  1 nimai nimai 10984 Nov 24  2013 ChangeLog
-rw-r--r--  1 nimai nimai 32521 Nov 24  2013 COPYING
drwxr-xr-x 15 nimai nimai  4096 Nov 26  2013 data
-rw-r--r--  1 nimai nimai  2110 Nov 24  2013 README
-rwxr-xr-x  1 nimai nimai    41 Abr  9  2010 run_game.sh
-rw-rw-r--  1 nimai nimai     4 Fev 14 16:35 .teste

Esse comando poderia ser escrito também como:

$ ls -la

Listar os arquivos e conteúdo de cada pasta recursivamente

$ ls -R

Esse comando vai listar o conteúdo da pasta e vai abrir cada sub diretório exibindo o seu conteúdo. Fica uma listagem um pouco longa e confusa a princípio:

Lista todo conteúdo por ordem de última modificação

john@PC:~/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64$ ls -l -a -t
drwxr-xr-x  4 nimai nimai  4096 Fev 14 16:35 .
-rw-rw-r--  1 nimai nimai     4 Fev 14 16:35 .teste
drwxr-xr-x 67 nimai nimai  4096 Fev 14 13:32 ..
drwxr-xr-x  2 nimai nimai  4096 Nov 26  2013 bin
drwxr-xr-x 15 nimai nimai  4096 Nov 26  2013 data
-rw-r--r--  1 nimai nimai 10984 Nov 24  2013 ChangeLog
-rw-r--r--  1 nimai nimai 32521 Nov 24  2013 COPYING
-rw-r--r--  1 nimai nimai  2110 Nov 24  2013 README
-rwxr-xr-x  1 nimai nimai    41 Abr  9  2010 run_game.sh

Podemos ver que o arquivo .teste foi modificado por último e o run_game.sh foi modificado primeiro.

Lista todo conteúdo com a extensão determinada

Nesse exemplo o comando mostraria todos os arquivos da pasta com a extensão .jpg. Podemos substituir a extensão por outra .mp3, .odt, etc.

$ls -l *.jpg

Lista arquivos em que os nomes tenham determinado padrão

Nesse exemplo estamos procurando arquivos que tenham Im no seu nome:

john@PC:~$ls | grep Im
Imagens

Lista arquivos com para saber o tamanho do arquivo em formato legível

john@PC:~/supertuxkart-0.8.1-2-linux-glibc2.11-x86-64$ls -lh
total 60K
drwxr-xr-x  2 nimai nimai 4,0K Nov 26  2013 bin
-rw-r--r--  1 nimai nimai  11K Nov 24  2013 ChangeLog
-rw-r--r--  1 nimai nimai  32K Nov 24  2013 COPYING
drwxr-xr-x 15 nimai nimai 4,0K Nov 26  2013 data
-rw-r--r--  1 nimai nimai 2,1K Nov 24  2013 README
-rwxr-xr-x  1 nimai nimai   41 Abr  9  2010 run_game.sh


Lista somente as pastas

ls -F | grep "/"


Fontes

ivani.wordpress.com ginfotec.com - Aprendendo a usar o comando ls vivaolinux.com.br - O comando ls

Links Externos

coreutils Manual