sexta-feira, 26 de setembro de 2014
terça-feira, 23 de setembro de 2014
Comando ls - listagem de diretórios e arquivos
Listagem de diretórios e arquivos com o comando ls
Colaboração: Rafael Moraes da Costa
Data de Publicação: 08 de setembro de 2010
O
ls
é um dos comandos mais conhecidos e utilizados em sistemas Unix-like.
Em sua forma mais simples, lista o conteúdo de determinado diretório,
contudo, com as opções certas, é capaz de prover informações que vão além da listagem de arquivos.
Vejamos algumas explicações seguidas por exemplos do
ls e suas opções.
Mostrar tipos de arquivos;
Para descobrir rapidamente quais tipos de arquivos estão armazenados em
determinado diretório, basta utilizar a opção abaixo. Onde
(/)está para diretórios, (*) para arquivos executáveis e (@) para links simbólicos:$ ls -F dir/ exec@ exec.sh*
Listar conteúdo de um determinado diretório e de todos sub-diretórios; Esta opção é útil quando é necessário identificar
arquivos e diretórios, elimina a necessidade de uma busca diretório por
diretório ou até mesmo da utilização de ferramentas de busca como find
ou locate:
$ ls -R dir/ dir/: dir1 dir/dir1: file1
Listagem quase completa, porém oculta a representação do diretório corrente (
.) e do diretório pai (..):$ ls -A .bash_history .bash_logout .bash_profile .bashrc dir dir2 exec exec.sh .hidden .ssh
Listar
arquivos ocultos; Utilizando esta opção, todos arquivos são mostrados
inclusive os ocultos. Os arquivos e diretórios ocultos são precedidos
por um ponto (.):
$ ls -a
.bash_logout .bash_profile .bashrc
Listar arquivos detalhadamente; Com esta opção pode-se visualizar informações mais detalhadas.
A primeira coluna detalha as permissões do arquivo ou diretório e ainda informa o tipo do arquivo*, nota-se no exemplo
drwxr-xr-x que se trata de um diretório (d), com permissão rwxr-xr-x 755,
portanto o usuário dono tem permissão para leitura, escrita e execução,
o grupo e outros tem permissão de leitura e execução, a segunda é a
quantidade de links ou diretórios, a terceira e quarta mostram o usuário
dono e grupo dono respectivamente, na quinta coluna temos o tamanho em
bytes (Quando é um diretório este valor representa o número de blocos
usados pelo diretório para armazenar as informações sobre seu conteúdo),
depois a data e hora da última modificação e por fim o nome (quando se
trata de um link simbólico, o nome do link aponta para o arquivo
original, como demonstrado abaixo):$ ls -l total 12 drwxr-xr-x 3 rafael rafael 4096 Ago 29 14:00 dir drwxr-xr-x 2 rafael rafael 4096 Ago 29 14:17 dir2 lrwxrwxrwx 1 rafael rafael 7 Ago 29 13:57 exec -> exec.sh -rwxr-xr-x 1 rafael rafael 19 Ago 29 13:56 exec.sh
Tipos de Arquivos
| -rwxr-xr-x | Arquivo comum |
| drwxr-xr-x | Diretório |
| lrwxr-xr-x | Link Simbólico |
| brwxr-xr-x | Arquivo de dispositivo - Bloco ( Block device file ) |
| crwxr-xr-x | Arquivo de dispositivo - Caracter ( Character device file ) |
| prwxr-xr-x | FIFO ( First in First Out - Named Pipe ) |
| srwxr-xr-x | Socket |
Listar
arquivos de forma mais inteligível; Esta opção mostra uma saída mais
legível, os tamanhos são apresentados em Bytes, Kilobytes, Megabytes e
etc. Não sendo necessário a converção de bytes para Megabytes e outras
unidades:
$ ls -lh total 12K drwxr-xr-x 3 rafael rafael 4,0K Ago 29 14:00 dir drwxr-xr-x 2 rafael rafael 4,0K Ago 29 14:17 dir2 lrwxrwxrwx 1 rafael rafael 7 Ago 29 13:57 exec -> exec.sh -rwxr-xr-x 1 rafael rafael 19 Ago 29 13:56 exec.sh
Listar
um diretório detalhadamente, mas sem apresentar o conteúdo; Normalmente
quando se lista um diretório o comando ls é usado tendo como único
argumento o diretório (
ls dir) e todo o conteúdo do diretório é mostrado:$ ls -ld dir total 4 drwxr-xr-x 2 rafael rafael 4096 Ago 29 14:00 dir1
Listar arquivos ordenados por data e hora com os mais novos em primeiro:
$ ls -lt total 12 drwxr-xr-x 2 rafael rafael 4096 Ago 29 14:17 dir2 drwxr-xr-x 3 rafael rafael 4096 Ago 29 14:00 dir lrwxrwxrwx 1 rafael rafael 7 Ago 29 13:57 exec -> exec.sh -rwxr-xr-x 1 rafael rafael 19 Ago 29 13:56 exec.sh
Listar arquivos ordenados por data e hora, desta vez com os mais antigos em primeiro:
$ ls -ltr total 12 -rwxr-xr-x 1 rafael rafael 19 Ago 29 13:56 exec.sh lrwxrwxrwx 1 rafael rafael 7 Ago 29 13:57 exec -> exec.sh drwxr-xr-x 3 rafael rafael 4096 Ago 29 14:00 dir drwxr-xr-x 2 rafael rafael 4096 Ago 29 14:17 dir2
Listar
sem apresentar o dono e grupo; As opções -g ( não mostra o dono ) e -G (
não mostra o grupo ), deixam a saída mais compacta:
$ ls -lgG total 12 drwxr-xr-x 3 4096 Ago 29 14:00 dir drwxr-xr-x 2 4096 Ago 29 14:17 dir2 lrwxrwxrwx 1 7 Ago 29 13:57 exec -> exec.sh -rwxr-xr-x 1 19 Ago 29 13:56 exec.sh
Omitir arquivo ou diretório especificado no comando:
$ ls -I dir dir2 exec exec.sh
Listar com o número de inode dos respectivos arquivos e diretórios:
$ ls -i 780307 dir 780313 dir2 780308 exec 780309 exec.sh
Listar arquivos e diretórios entre aspas:
$ ls -Q "dir" "dir2" "exec" "exec.sh"
Listar por ordem de tamanho:
Decrescente:
$ ls -Sl total 12 drwxr-xr-x 3 rafael rafael 4096 Ago 29 14:00 dir drwxr-xr-x 2 rafael rafael 4096 Ago 29 14:17 dir2 -rwxr-xr-x 1 rafael rafael 19 Ago 29 13:56 exec.sh lrwxrwxrwx 1 rafael rafael 7 Ago 29 13:57 exec -> exec.sh
Crescente:
$ ls -Srl total 12 lrwxrwxrwx 1 rafael rafael 7 Ago 29 13:57 exec -> exec.sh -rwxr-xr-x 1 rafael rafael 19 Ago 29 13:56 exec.sh drwxr-xr-x 2 rafael rafael 4096 Ago 29 14:17 dir2 drwxr-xr-x 3 rafael rafael 4096 Ago 29 14:00 dir
Mostrar horário do último acesso:
$ ls -ul total 12 drwxr-xr-x 3 rafael rafael 4096 Ago 29 19:18 dir drwxr-xr-x 2 rafael rafael 4096 Ago 29 19:18 dir2 lrwxrwxrwx 1 rafael rafael 7 Ago 29 19:49 exec -> exec.sh -rwxr-xr-x 1 rafael rafael 19 Ago 29 19:49 exec.sh
Listar um arquivo por linha:
$ ls -1 dir dir2 exec exec.sh
Estes exemplos são extremamente úteis no cotidiano de um administrador de sistemas. O
ls é simples e com as opções, extremamente funcional e por vezes elimina a necessidade de usar outros comandos.
Em
suma, com criatividade é possível criar diversas combinações
facilitadoras fazendo com que as tarefas sejam mais dinâmicas e rápidas.
Rafael Moraes, é Analista de Suporte e Infraestrutura para sistemas Linux e também Instrutor em cursos preparatórios LPI. Possui as certificações LPIC-1, LPIC-2, ITIL Foundations e CISCO CCDA.
Assinar:
Postagens (Atom)