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.
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: