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:

[email protected] [/home/codigofonte]# ls
./                 codigofonte.jpg     codigofonte.php
../                codigofontejpg.jpg  codigofonte_teste.php
codigofonte_2.jpg  .codigofonte.php    codigofonte.txt
[email protected] [/home/codigofonte]#

2) ls -l

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

[email protected] [/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
[email protected] [/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:

[email protected] [/home/codigofonte]# ls -a
./                 codigofonte.jpg     codigofonte.php
../                codigofontejpg.jpg  codigofonte_teste.php
codigofonte_2.jpg  .codigofonte.php    codigofonte.txt
[email protected] [/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:

[email protected] [/home/codigofonte]# ls -t
codigofonte.txt  codigofonte_teste.php  codigofonte_2.jpg
codigofonte.php  .codigofonte.php       codigofonte.jpg
./               ../                    codigofontejpg.jpg
[email protected] [/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:

[email protected] [/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
[email protected] [/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:

[email protected] [/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
[email protected] [/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:

[email protected] [/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
[email protected] [/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:

[email protected] [/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
[email protected] [/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:

[email protected] [/home/codigofonte]# ls -1
./
../
codigofonte_2.jpg
codigofonte.jpg
codigofontejpg.jpg
.codigofonte.php
codigofonte.php
codigofonte_teste.php
codigofonte.txt
[email protected] [/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:

[email protected] [/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
[email protected] [/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:

[email protected] [/home/codigofonte]# ls -d */
codigofonte_1//  codigofonte_2//  codigofonte_imagens//  codigofonte_teste//
[email protected] [/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 :

[email protected] [/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
[email protected] [/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:

[email protected] [/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:
./  ../
[email protected] [/home/codigofonte]#

14) ls -m

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

[email protected] [/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
[email protected] [/home/codigofonte]#

15) ls -d $PWD/*

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

[email protected] [/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
[email protected] [/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: