Usamos o ls
comando Linux todos os dias sem pensar nisso. É uma pena. Preste atenção e você encontrará muitas opções úteis – incluindo algumas que você deve adicionar ao seu arsenal de linha de comando.
Índice
ls lista arquivos e diretórios
O ls
comando é provavelmente o primeiro comando que a maioria dos usuários do Linux encontra. Aqueles de nós que usam a linha de comando a usam dia após dia, sem nem mesmo pensar a respeito. Isso pode explicar por que esse comando é mais do que a maioria dos usuários imagina. Listamos arquivos com ele para ver o que há em um diretório. Listamos arquivos em formato longo quando desejamos verificar as permissões de um arquivo. Além disso, recebe pouca consideração.
O ls
comando é um daqueles comandos com inúmeras opções. Talvez isso seja parte do problema. Existem tantas opções, como você as examina para encontrar as úteis? E tendo-os encontrado, como você se lembra deles?
Permutações úteis do ls
comando com suas cadeias de opções e parâmetros são os candidatos perfeitos para aliases . Na verdade, na maioria das distribuições, o que você chama de ls
comando “nu” é na verdade um apelido. Entre outras coisas, o type
comando pode ser usado para mostrar a definição subjacente de apelidos . Vejamos a definição de ls
:
tipo ls
Os --color=auto
parâmetros são incluídos automaticamente sempre que você usa o ls
comando. Isso é o que fornece as diferentes cores para os diferentes tipos de arquivo nas listas.
Listagens ls simples
Todo mundo que já passou algum tempo usando o terminal Linux sabe que, por padrão, ls
lista os arquivos e diretórios no diretório atual.
ls
Se você deseja que sua listagem seja produzida em uma única coluna, use a opção -1
(um arquivo por linha):
ls -1
Discutiremos esse nome de arquivo de aparência estranha no topo da lista em um minuto.
Usando ls em diretórios diferentes
Para ls
listar os arquivos em um diretório diferente do diretório atual, passe o caminho para o diretório ls
na linha de comando. Você também pode passar mais de um diretório para ls
e listá-los um após o outro. Aqui, estamos pedindo ls
para listar os arquivos em dois diretórios, um chamado “Help” e o outro chamado “gc_help”.
ls Help gc_help
Quando ls
tiver listado o conteúdo do primeiro diretório, ele listará o conteúdo do segundo. Ele imprime o nome de cada diretório à medida que os processa:
Usando padrões de arquivo
Para listar seletivamente um conjunto de arquivos, use a correspondência de padrões. O ponto de interrogação “ ?
” representará qualquer caractere único e o asterisco “ *
” representará qualquer sequência de caracteres. Para listar quaisquer arquivos ou diretórios que tenham nomes começando com “ip_”, use este formato:
ls ip_ *
Para listar arquivos com extensões “.c”, use este formato:
ls * .c
Você também pode usar ls
com grep
e uso grep
de recursos de padrão de correspondência . Vamos procurar qualquer arquivo que tenha a string “_pin_” no nome:
ls | grep _pin_
Isso é quase o mesmo que usar ls
sozinho, com dois curingas:
ls | grep _pin_
ls * _pin_ *
Por que quase o mesmo? Observe os diferentes layouts. grep
força a saída para um único nome de arquivo por formato de linha.
Caracteres não imprimíveis
É possível encontrar um nome de arquivo que tenha um caractere não imprimível ou de controle em seu nome. Normalmente, isso pode acontecer quando você expande um arquivo que baixou da web ou recuperou um repositório git , e o autor original cometeu um erro ao criar um arquivo, mas não o localizou.
Nosso arquivo estranho é um destes:
Se olharmos para ele no navegador de arquivos e pressionarmos “F2” para renomeá-lo, os caracteres não imprimíveis são representados por um símbolo estranho.
Você pode usar a -b
opção (escape) para permitir que você veja o que o nome do arquivo realmente contém. Esta opção faz ls
com que use as sequências de escape da linguagem de programação C para representar os caracteres de controle.
ls -ba *
O personagem misterioso é revelado como um personagem de nova linha, representado em C como “\ n”.
Ignorando arquivos
Para omitir certos arquivos de uma lista, use a --hide
opção. Suponha que você não queira ver os arquivos “.bak” de backup na lista. Você pode usar este comando:
ls
ls --hide = *. bak
Os arquivos “.bak” não estão incluídos na segunda lista.
A lista de formato longo
A opção -l
(lista longa) ls
fornece informações detalhadas sobre cada arquivo.
ls -l
Há muitas informações aqui, então vamos examiná-las.
A primeira coisa a ser ls
exibida é o tamanho total de todos os arquivos da listagem. Em seguida, cada arquivo ou diretório é exibido em uma linha por si só.
O primeiro conjunto de dez letras e travessões é o tipo de arquivo e o proprietário, grupo e outras permissões de arquivo.
O primeiro caractere representa o tipo de arquivo. Será um dos seguintes:
- – : Um arquivo normal.
- b : Um arquivo especial de bloco.
- c : Um arquivo especial de caracteres.
- d : um diretório.
- l : Um link simbólico.
- n : um arquivo de rede.
- p : Um pipe nomeado.
- s : um soquete.
Os próximos nove caracteres são três grupos de três caracteres exibidos de forma contígua. Cada grupo de três representa as permissões de leitura, gravação e execução, nessa ordem. Se a permissão for concedida, haverá uma r
, w
ou x
presente. Se a permissão não for concedida, um hífen -
será mostrado.
O primeiro conjunto de três caracteres são as permissões para o proprietário do arquivo. O segundo conjunto de três permissões é para membros do grupo e o último conjunto de três permissões é para outros.
Às vezes, a permissão de execução para o proprietário é representada por um s
. Este é o bit setuid . Se estiver presente, significa que o arquivo é executado com os privilégios do proprietário do arquivo, não do usuário que está executando o arquivo.
A permissão de execução para o grupo também pode ser um s
. Este é o bit setgid . Quando isso é aplicado a um arquivo, significa que o arquivo será executado com os privilégios do grupo da ower. Quando usado com um diretório, qualquer arquivo criado dentro dele terá suas permissões de grupo do diretório em que estão sendo criados, não do usuário que está criando o arquivo.
A permissão de execução para os outros às vezes pode ser representada por a t
. Esta é a parte pegajosa . Geralmente é aplicado a diretórios. Se isso for definido, independentemente dos privilégios de gravação e executável definidos nos arquivos no diretório, apenas o proprietário do arquivo, o proprietário do diretório ou o usuário root podem renomear ou excluir arquivos no diretório.
Um uso comum para o sticky bit é em pastas como “/ tmp”. Todos os usuários do computador podem gravá-lo. A parte fixa no diretório garante que os usuários – e os processos iniciados pelos usuários – só possam renomear ou excluir seus próprios arquivos temporários.
Podemos ver o sticky bit no diretório “/ tmp”. Observe o uso da -d
opção (diretório). Isso faz ls
com que o relatório sobre os detalhes do diretório. Sem esta opção, ls
irá relatar sobre os arquivos dentro do diretório.
ls -l -d / tmp
O número após as permissões é o número de links físicos para o arquivo ou diretório. Para um arquivo, geralmente é um, mas se outros links físicos forem criados, esse número aumentará. Um diretório normalmente tem pelo menos dois links físicos. Um é um link para ele mesmo e o outro é sua entrada no diretório pai.
O nome do proprietário e do grupo são exibidos a seguir. Eles são seguidos pelo tamanho do arquivo e pela data da última modificação do arquivo. Finalmente, o nome do arquivo é fornecido.
Tamanhos de arquivo legíveis por humanos
Nem sempre é conveniente ter os tamanhos dos arquivos em bytes. Para ver os tamanhos dos arquivos nas unidades mais adequadas (Kilobytes, Megabytes, etc.), use a opção -h
(legível):
ls -l -h
Mostrando arquivos ocultos
Para ver os arquivos ocultos, use a -a
opção (todos):
ls -l -a
As duas entradas “.” e “..” representam o diretório atual e o diretório pai, respectivamente. Um arquivo chamado “.base_settings” agora está visível pela primeira vez.
Omitindo. e .. de listagens
Se você não quiser que sua listagem seja desordenada com o “.” e entradas “..”, mas você deseja ver os arquivos ocultos, use a opção -A
(quase todos):
ls -l -A
O arquivo oculto ainda está listado, mas o “.” e as entradas “..” são suprimidas.
Listagem de diretórios recursivamente
Para ls
listar os arquivos em todos os subdiretórios, use a -R
opção (recursiva)
ls -l -R
ls
percorre toda a árvore de diretórios abaixo do diretório inicial e lista os arquivos em cada subdiretório.
Exibindo o UID e GID
Para que o ID do usuário e o ID do grupo sejam exibidos em vez do nome do usuário e do grupo, use a opção -n
(uid e gid numéricos).
ls -n
Classificando as listas
Você pode classificar a lista por extensão, tamanho do arquivo ou hora de modificação. Essas opções não precisam ser usadas com o formato de lista longa, mas geralmente faz sentido fazer isso. Se você estiver classificando por tamanho de arquivo, faz sentido ver os tamanhos dos arquivos na lista. Quando você está classificando por tipo de extensão, o formato de lista longa não é tão importante.
Para classificar por extensão, use a opção -X
(classificar por extensão).
ls -X -1
Os diretórios são listados primeiro (sem extensões) e o restante segue em ordem alfabética, de acordo com as extensões.
Para classificar por tamanho de arquivo, use a opção -S
(classificar por tamanho de arquivo).
ls -l -h -S
A ordem de classificação é do maior para o menor.
Para classificar a lista por hora de modificação, use a opção -t
(classificar por hora de modificação).
ls -l -t
A lista é classificada pela hora da modificação.
Se a hora de modificação do arquivo estiver dentro do ano atual, as informações exibidas são o mês, o dia e a hora. Se a data de modificação não estava no ano atual, as informações exibidas são o mês, o dia e o ano.
Uma maneira rápida de obter os arquivos mais novos e mais antigos em um diretório é usar ls
com os comandos head
e tail
.
Para obter o arquivo ou diretório mais recente, use este comando:
ls -t | cabeça -1
Para obter o arquivo ou diretório mais antigo, use este comando:
ls -t | cauda -1
Para reverter a ordem de classificação
Para reverter qualquer uma das ordens de classificação, use a -r
opção (reverter).
ls -l -h -S -r
A listagem agora está ordenada do menor arquivo para o maior.
E tem mais
Confira a página de homem para ls
, existem muitas mais opções . Alguns deles satisfazem casos de uso um tanto obscuros, mas de vez em quando, você ficará feliz em saber sobre eles.
Você precisa ver os carimbos de data / hora do arquivo com a precisão máxima que o Linux pode fornecer? Use a opção de tempo integral:
ls - tempo integral
Talvez você queira ver o número de inode dos arquivos? Use a opção inode:
ls -i
Você está trabalhando em uma tela monocromática e deseja eliminar todo o risco de confundir arquivos para diretórios e links? Use a opção de classificação e ls
acrescentará uma delas a cada entrada da lista:
- / : Um diretório.
- @ : Um link simbólico.
- | : Um pipe nomeado.
- = : Um soquete.
- * : Um arquivo executável
ls -F
Faça alguma escavação. Você descobrirá que ls
é uma veia rica e continuará encontrando joias.