Existem muitas maneiras de listar arquivos e exibir informações sobre eles em sistemas Linux. Este post analisa uma série de comandos que fornecem detalhes sobre arquivos e oferece opções para personalizar suas listas de arquivos para atender às suas necessidades.
a maioria dos comandos listam arquivos dentro de diretórios individuais, enquanto outros chegam tão profundamente em um sistema de arquivos como você se importa de olhar.
o comando primário para listar arquivos é, claro, ls. Este comando, no entanto, tem um grande número de opções para encontrar e listar apenas os arquivos que você deseja ver. Além disso, há sempre quem ajude com pesquisas de Ficheiros muito específicas.
listar arquivos pelo nome
a maneira mais fácil de listar arquivos pelo nome é simplesmente listá-los usando o comando ls. Listar arquivos pelo nome (ordem alfanumérica) é, afinal, o padrão. Você pode escolher o ls (sem detalhes) ou ls-l (muitos detalhes) para determinar a sua vista.
$ ls | head -68pgs.pdfAesthetics_Thank_You.pdfalien.pdfAnnual_Meeting_Agenda-20190602.pdfbigfile.bz2bin$ ls -l | head -6-rw-rw-r-- 1 shs shs 10886 Mar 22 2019 8pgs.pdf-rw-rw-r-- 1 shs shs 284003 May 11 2019 Aesthetics_Thank_You.pdf-rw-rw-r-- 1 shs shs 38282 Jan 24 2019 alien.pdf-rw-rw-r-- 1 shs shs 97358 May 19 2019 Annual_Meeting_20190602.pdf-rw-rw-r-- 1 shs shs 18115234 Apr 16 17:36 bigfile.bz2drwxrwxr-x 4 shs shs 8052736 Jul 10 13:17 bin
Pipe a saída de ls para o comando mais importante se quiser rever a sua listagem de um screenful de cada vez.
listar ficheiros na ordem inversa
para inverter a lista de Ficheiros pelo nome, adicione a opção-r (reversa). Isto será como virar a lista normal de pernas para o ar.
$ ls -r$ ls -lr
listando arquivos por extensão de arquivo
o comando ls não analisa tipos de arquivos pelo conteúdo, mas trabalha com nomes de arquivos. Há, no entanto, uma opção de comando que pode listar arquivos por extensão. Se você adicionar a opção-X, ls irá ordenar os arquivos pelo nome dentro de cada categoria de extensão. Por exemplo, ele irá listar arquivos sem extensões primeiro (em ordem alfanumérica) seguido por arquivos com extensões como .1,. bz2,.c e assim por diante.
listando apenas as pastas
por omissão, o comando ls irá mostrar tanto os ficheiros como as pastas. Se você quiser listar apenas diretórios, você pode usar a opção-D. Você irá obter uma lista como esta:
$ ls -d */1/ backups/ modules/ projects/ templates/2/ html/ patches/ public/ videos/bin/ new/ private/ save/
listando os ficheiros por tamanho
Se quiser listar os ficheiros por ordem de tamanho, adicione a opção-S. Note, no entanto, que isso não vai realmente mostrar os tamanhos (juntamente com outros detalhes de arquivo), a menos que você também adicionar a opção-l (listagem longa). Ao listar arquivos por tamanho, é geralmente útil ver que o comando está fazendo o que você pediu. Observe que o padrão é mostrar os arquivos maiores primeiro. Adicione a opção-r para reverter isso (ou seja, ls-lSr).
$ ls -lStotal 959492-rw-rw-r-- 1 shs shs 357679381 Sep 19 2019 sav-linux-free-9.tgz-rw-rw-r-- 1 shs shs 103270400 Apr 16 17:38 bigfile-rw-rw-r-- 1 shs shs 79117862 Oct 5 2019 Nessus-8.7.1-ubuntu1110_amd64.deb
listar os ficheiros pelo proprietário
Se quiser listar os ficheiros pelo proprietário (por exemplo:, em um diretório compartilhado), você pode passar o resultado do comando ls para ordenar e escolher a coluna do proprietário adicionando-k3 para ordenar no terceiro campo.
$ ls -l | sort -k3 | moretotal 56-rw-rw-r-- 1 dory shs 0 Aug 23 12:27 tasklistdrwx------ 2 gdm gdm 4096 Aug 21 17:12 tracker-extract-files.121srwxr-xr-x 1 root root 0 Aug 21 17:12 ntf_listenerc0c6b8b4567drwxr-xr-x 2 root root 4096 Aug 21 17:12 hsperfdata_root
^
|
na verdade, você pode classificar em qualquer campo desta forma (por exemplo, ano). Basta ter o cuidado de adicionar um ” n ” – k5n-se você está ordenando em um campo que é numérico ou você estará ordenando em ordem alfanumérica. Esta técnica de triagem é útil para classificar o conteúdo do arquivo, bem como, não apenas listar arquivos.
listando arquivos por idade
Use a opção-t para listar arquivos por ordem de idade-como eles são novos. Adicione a opção-r para obter os arquivos atualizados mais recentemente mostrando-se em último na lista. Uso este pseudónimo para me mostrar uma lista dos ficheiros que mais recentemente actualizei:
$ alias recent='ls -ltr | tail -8'
Note que os tempos de alteração e modificação dos ficheiros são diferentes. As opções-c (alteração) e-t (modificação) nem sempre darão os mesmos resultados. Se você alterar as permissões em um arquivo e nada mais,- c irá colocar esses arquivos no topo da saída ls enquanto-t não vai. Se você está curioso sobre a diferença, olhe para o resultado do comando stat.
$ stat ckacct File: ckacct Size: 200 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 829041 Links: 1Access: (0750/-rwxr-x---) Uid: ( 1000/ shs) Gid: ( 1000/ shs)Access: 2020-08-20 16:10:11.063015008 -0400Modify: 2020-08-17 07:26:34.579922297 -0400 <== content changesChange: 2020-08-24 09:36:51.699775940 -0400 <== content or permissions changes Birth: -
listando ficheiros por grupo
para ordenar ficheiros pelos grupos associados, pode passar o resultado de uma longa lista para o comando sort e dizer-lhe para ordenar na coluna 4.
$ ls -l | sort -k4
listando arquivos por data de acesso
para listar arquivos por data de acesso (mais recentemente acessado primeiro), use as opções-ltu. O ” u “impõe a ordem de listagem” por data de acesso”.
$ ls -ltutotal 959500-rwxr-x--- 1 shs shs 200 Aug 24 09:42 ckacct <== most recently used-rw-rw-r-- 1 shs shs 1335 Aug 23 17:45 lte
listando vários arquivos em uma única linha
às vezes uma listagem de arquivos condensados é mais apropriada para a tarefa em mãos. O comando ls até tem opções para isso. Para listar os ficheiros em tão poucas linhas quanto possível, poderá usar –format = vírgula para separar os nomes dos ficheiros com vírgulas como Neste comando:
$ ls --format=comma1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19,192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf,'2019_HOHO_application working.pdf' …
prefere espaço em branco? Use –format=across instead.
$ ls --format=across z*z zip zipfiles zipfiles1.bat zipfiles2.batzipfiles3.bat zipfiles4.bat zipfiles.bat zoom_amd64.deb zoomap.pdfzoom-mtg
adicionando profundidade às suas pesquisas
enquanto o ls lista geralmente os ficheiros numa única pasta, poderá optar por listar recursivamente os ficheiros usando as opções-R, aprofundando toda a profundidade das pastas:
$ ls -R zzzzz | grep -v "^$"zzzzz:zzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping
alternadamente, você pode usar um comando find Com uma especificação de profundidade limitada ou ilimitada. Neste comando, instruímos o comando localizar para procurar em apenas três níveis de diretórios:
$ find zzzzz -maxdepth 3zzzzzzzzzz/zzzzzzzzz/zzzz/zzzzzzzz/zzzz/zzz/zz
Escolher a ls vs encontrar
Quando você precisa listar os arquivos que atendem muito seletivo lista de requisitos, o comando find é provavelmente a melhor ferramenta para o uso de ls.
Ao contrário de ls, o comando find parece tão profundamente quanto possível, a menos que você o constrange. Ele também tem muitas outras opções e um comando an-exec que lhe permite tomar alguma ação específica, uma vez que você encontrar os arquivos que você está procurando.
Wrap-Up
o comando ls tem muitas opções para listar ficheiros. Olha para eles. Talvez encontres algo que gostes.