Shell
Categorias

Listagem de diretórios no Linux: 15 exemplos de utilização do comando LS

O comando LS (List), no Linux, faz realmente o que seu nome dá a entender. Ele lista o conteúdo de diretórios. Para quem adora usar o terminal, ou até mesmo para quem precisa, ele é imprescindível. Trata-se de um dos comandos mais utilizados em sistemas Unix-like, além disso, um comando valiosíssimo para administradores de servidores Linux.

Trata-se de um comando também capaz de listar arquivos de diferentes maneiras. O usuário é capaz, com o comando LS, de listar arquivos em ordem alfabética, em forma de listas simples, em colunas, e de diversos outros modos (em blocos, também).

Com o LS, podemos visualizar informações de uma maneira mais amigável, mais confortável, até mesmo porque, dependendo da situação e do usuário, o shell pode assustar um pouco, principalmente quando um grande número de informações é exibido ao mesmo tempo.

Shell

Vamos lá. Vamos mostrar a você 15 exemplos de utilização do comando LS, no Linux:

1) ls

Esta é a forma mais básica. Ao simplesmente digitar “ls” (sem aspas e seguido de um <ENTER>) no prompt de comando, o usuário pode conferir uma lista com os arquivos contidos no diretório, sem maiores detalhes, sem que sejam exibidas informações tais como, por exemplo, tamanho dos arquivos, data de modificação, etc:

root@host [/home/codigofonte]# ls
./                 codigofonte.jpg     codigofonte.php
../                codigofontejpg.jpg  codigofonte_teste.php
codigofonte_2.jpg  .codigofonte.php    codigofonte.txt
root@host [/home/codigofonte]#

2) ls -l

O comando acima exibe o conteúdo da pasta em forma de lista:

root@host [/home/codigofonte]# ls -l
total 540
drwxr-xr-x   2 root root   4096 Feb 11 11:26 ./
drwx--x--x. 26 root root   4096 Feb 11 11:17 ../
-rw-r--r--   1 root root  27886 Feb  5 13:50 codigofonte_2.jpg
-rw-r--r--   1 root root 211156 Dec  1 10:43 codigofonte.jpg
-rw-r--r--   1 root root 216423 Dec  1 10:23 codigofontejpg.jpg
-rw-r--r--   1 root root   1809 Feb 11 11:19 .codigofonte.php
-rw-r--r--   1 root root   1809 Feb 11 11:19 codigofonte.php
-rw-r--r--   1 root root  56141 Feb 11 11:20 codigofonte_teste.php
-rw-r--r--   1 root root  19899 Feb 11 11:19 codigofonte.txt
root@host [/home/codigofonte]#

3) ls -a

Com o comando ls seguido do parâmetro -a, podemos listar o conteúdo de um diretório em forma de coluna:

root@host [/home/codigofonte]# ls -a
./                 codigofonte.jpg     codigofonte.php
../                codigofontejpg.jpg  codigofonte_teste.php
codigofonte_2.jpg  .codigofonte.php    codigofonte.txt
root@host [/home/codigofonte]#

4) ls -t

Com ls -t podemos listar os arquivos por ordem de data de modificação. Arquivos que foram modificados por último, mais recentemente, são exibidos em primeiro lugar:

root@host [/home/codigofonte]# ls -t
codigofonte.txt  codigofonte_teste.php  codigofonte_2.jpg
codigofonte.php  .codigofonte.php       codigofonte.jpg
./               ../                    codigofontejpg.jpg
root@host [/home/codigofonte]#

5) ls -lt

Lista os arquivos por ordem de data de modificação, também exibindo os modificados mais recentemente em primeiro lugar. Porém, este comando lista tudo com mais detalhes:

root@host [/home/codigofonte]# ls -lt
total 540
-rw-r--r--   1 root root  19535 Feb 11 11:34 codigofonte.txt
-rw-r--r--   1 root root   1944 Feb 11 11:34 codigofonte.php
drwxr-xr-x   2 root root   4096 Feb 11 11:26 ./
-rw-r--r--   1 root root  56141 Feb 11 11:20 codigofonte_teste.php
-rw-r--r--   1 root root   1809 Feb 11 11:19 .codigofonte.php
drwx--x--x. 26 root root   4096 Feb 11 11:17 ../
-rw-r--r--   1 root root  27886 Feb  5 13:50 codigofonte_2.jpg
-rw-r--r--   1 root root 211156 Dec  1 10:43 codigofonte.jpg
-rw-r--r--   1 root root 216423 Dec  1 10:23 codigofontejpg.jpg
root@host [/home/codigofonte]#

6) ls -ltr

Similar ao comando acima, com a diferença de listar em ordem reversa, ou seja, os modificados mais recentemente vão ficando para o final da lista:

root@host [/home/codigofonte]# ls -ltr
total 540
-rw-r--r--   1 root root 216423 Dec  1 10:23 codigofontejpg.jpg
-rw-r--r--   1 root root 211156 Dec  1 10:43 codigofonte.jpg
-rw-r--r--   1 root root  27886 Feb  5 13:50 codigofonte_2.jpg
drwx--x--x. 26 root root   4096 Feb 11 11:17 ../
-rw-r--r--   1 root root   1809 Feb 11 11:19 .codigofonte.php
-rw-r--r--   1 root root  56141 Feb 11 11:20 codigofonte_teste.php
drwxr-xr-x   2 root root   4096 Feb 11 11:26 ./
-rw-r--r--   1 root root   1944 Feb 11 11:34 codigofonte.php
-rw-r--r--   1 root root  19535 Feb 11 11:34 codigofonte.txt
root@host [/home/codigofonte]#

7) ls -s

O comando acima exibe os arquivos de uma pasta em formato de bloco, sendo que eles são ordenados por tamanho:

root@host [/home/codigofonte]# ls -s
total 540
  4 ./                 208 codigofonte.jpg       4 codigofonte.php
  4 ../                212 codigofontejpg.jpg   56 codigofonte_teste.php
 28 codigofonte_2.jpg    4 .codigofonte.php     20 codigofonte.txt
root@host [/home/codigofonte]#

8) ls -l *.extensao

O comando acima permite filtrar e listar somente determinados tipos de arquivo. Por exemplo, ls -l *.php exibirá somente os arquivos .php contidos na pasta, e assim por diante:

root@host [/home/codigofonte]# ls -l *.php
-rw-r--r-- 1 root root  1944 Feb 11 11:34 codigofonte.php
-rw-r--r-- 1 root root 56141 Feb 11 11:20 codigofonte_teste.php
root@host [/home/codigofonte]#

9) ls -1

Com ls -1, podemos fazer com que os arquivos do diretório sejam listados por linha, um em cada linha:

root@host [/home/codigofonte]# ls -1
./
../
codigofonte_2.jpg
codigofonte.jpg
codigofontejpg.jpg
.codigofonte.php
codigofonte.php
codigofonte_teste.php
codigofonte.txt
root@host [/home/codigofonte]#

10) ls -lh

Para obter uma listagem de arquivos que exiba seus respectivos tamanhos de uma forma mais compreensível, ou “Human Readable” (humanamente legível). Assim, você pode conferir os tamanhos em KB, MB, GB, etc:

root@host [/home/codigofonte]# ls -lh
total 540K
drwxr-xr-x   2 root root 4.0K Feb 11 11:26 ./
drwx--x--x. 26 root root 4.0K Feb 11 11:17 ../
-rw-r--r--   1 root root  28K Feb  5 13:50 codigofonte_2.jpg
-rw-r--r--   1 root root 207K Dec  1 10:43 codigofonte.jpg
-rw-r--r--   1 root root 212K Dec  1 10:23 codigofontejpg.jpg
-rw-r--r--   1 root root 1.8K Feb 11 11:19 .codigofonte.php
-rw-r--r--   1 root root 1.9K Feb 11 11:34 codigofonte.php
-rw-r--r--   1 root root  55K Feb 11 11:20 codigofonte_teste.php
-rw-r--r--   1 root root  20K Feb 11 11:34 codigofonte.txt
root@host [/home/codigofonte]#

11) ls -d */

Digamos que você esteja em um diretório e deseje listar todos os seus subdiretórios, apenas, excluindo os arquivos aí presentes.  Basta então digitar ls -d */ , e o output será similar ao abaixo:

root@host [/home/codigofonte]# ls -d */
codigofonte_1//  codigofonte_2//  codigofonte_imagens//  codigofonte_teste//
root@host [/home/codigofonte]#

12) ls -g e ls -G

Para excluir da listagem de arquivos os proprietários e os grupos de cada arquivo. O comando ls -g exclui da lista o proprietário, e ls seguido do parâmetro -G (observe a letra maiúscula aqui) exclui o grupo. Também é possível usar os dois de forma combinada, ou seja, ls -g -G :

root@host [/home/codigofonte]# ls -g -G
total 556
drwxr-xr-x   6   4096 Feb 11 12:54 ./
drwx--x--x. 26   4096 Feb 11 11:17 ../
drwxr-xr-x   2   4096 Feb 11 12:54 codigofonte_1/
drwxr-xr-x   2   4096 Feb 11 12:54 codigofonte_2/
-rw-r--r--   1  27886 Feb  5 13:50 codigofonte_2.jpg
drwxr-xr-x   3   4096 Feb 11 12:57 codigofonte_imagens/
-rw-r--r--   1 211156 Dec  1 10:43 codigofonte.jpg
-rw-r--r--   1 216423 Dec  1 10:23 codigofontejpg.jpg
-rw-r--r--   1   1809 Feb 11 11:19 .codigofonte.php
-rw-r--r--   1   1944 Feb 11 11:34 codigofonte.php
drwxr-xr-x   2   4096 Feb 11 12:54 codigofonte_teste/
-rw-r--r--   1  56141 Feb 11 11:20 codigofonte_teste.php
-rw-r--r--   1  19535 Feb 11 11:34 codigofonte.txt
root@host [/home/codigofonte]#

13) ls -R

Através deste comando, você pode listar não somente arquivos e pastas, mas também o conteúdo de subdiretórios, como outros arquivos, por exemplo:

root@host [/home/codigofonte]# ls -R
.:
./              codigofonte_2.jpg     .codigofonte.php       codigofonte.txt
../             codigofonte_imagens/  codigofonte.php
codigofonte_1/  codigofonte.jpg       codigofonte_teste/
codigofonte_2/  codigofontejpg.jpg    codigofonte_teste.php

./codigofonte_1:
./  ../  .codigofonte.php

./codigofonte_2:
./  ../  codigofonte.jpg  codigofonte.php

./codigofonte_imagens:
./  ../  testes_codigofonte/

./codigofonte_imagens/testes_codigofonte:
./  ../

./codigofonte_teste:
./  ../
root@host [/home/codigofonte]#

14) ls -m

Para listar o conteúdo e separar apenas por uma vírgula:

root@host [/home/codigofonte]# ls -m
./, ../, codigofonte_1/, codigofonte_2/, codigofonte_2.jpg,
codigofonte_imagens/, codigofonte.jpg, codigofontejpg.jpg, .codigofonte.php,
codigofonte.php, codigofonte_teste/, codigofonte_teste.php, codigofonte.txt
root@host [/home/codigofonte]#

15) ls -d $PWD/*

O comando acima lista pastas e arquivos incluindo o caminho completo para eles:

root@host [/home/codigofonte]# ls -d $PWD/*
/home/codigofonte/codigofonte_1/        /home/codigofonte/codigofontejpg.jpg
/home/codigofonte/codigofonte_2/        /home/codigofonte/codigofonte.php
/home/codigofonte/codigofonte_2.jpg     /home/codigofonte/codigofonte_teste/
/home/codigofonte/codigofonte_imagens/  /home/codigofonte/codigofonte_teste.php
/home/codigofonte/codigofonte.jpg       /home/codigofonte/codigofonte.txt
root@host [/home/codigofonte]#

Finalizando

O comando ls, juntamente com os vários parâmetros existentes, é realmente importantíssimo. Com ele, podemos realmente obter informações a respeito de arquivos e diretórios, listando seus respectivos conteúdos de diversas maneiras.

Dê uma lida também em outros artigos a respeito de comandos no Linux: