11 modi per elencare e ordinare i file su Linux

Ci sono molti modi per elencare i file e visualizzare le informazioni su di loro sui sistemi Linux. Questo post esamina una serie di comandi che forniscono dettagli sui file e fornisce opzioni per personalizzare i tuoi elenchi di file per soddisfare le tue esigenze.

La maggior parte dei comandi elenca i file all’interno di singole directory, mentre altri raggiungono il più profondamente in un file system come ti interessa guardare.

Il comando principale per elencare i file è, ovviamente, ls. Questo comando, tuttavia, ha un ampio numero di opzioni per trovare e elencare solo i file che si desidera vedere. Inoltre, c’è sempre trovare per aiutare con ricerche di file molto specifiche.

Elencare i file per nome

Il modo più semplice per elencare i file per nome è semplicemente elencarli usando il comando ls. L’elenco dei file per nome (ordine alfanumerico) è, dopo tutto, l’impostazione predefinita. Puoi scegliere ls (nessun dettaglio) o ls – l (molti dettagli) per determinare la tua 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

Convoglia l’output di ls al comando more se vuoi rivedere la tua inserzione una schermata alla volta.

Elencare i file in ordine inverso

Per invertire l’elenco dei file per nome, aggiungere l’opzione-r (reverse). Questo sarà come trasformare il normale elenco a testa in giù.

$ ls -r$ ls -lr

Elenco dei file per estensione

Il comando ls non analizza i tipi di file in base al contenuto, ma funziona con i nomi dei file. C’è, tuttavia, un’opzione di comando che può elencare i file per estensione. Se aggiungi l’opzione-X, ls ordinerà i file per nome all’interno di ciascuna categoria di estensione. Ad esempio, elencherà prima i file senza estensioni (in ordine alfanumerico) seguiti da file con estensioni come .1, .bz2,.c e così via.

Elenca solo le directory

Per impostazione predefinita, il comando ls mostrerà sia i file che le directory. Se si desidera elencare solo le directory, è possibile utilizzare l’opzione-D. Otterrai un elenco come questo:

$ ls -d */1/ backups/ modules/ projects/ templates/2/ html/ patches/ public/ videos/bin/ new/ private/ save/

Elenco dei file per dimensione

Se vuoi elencare i file in ordine di dimensioni, aggiungi l’opzione-S. Si noti, tuttavia, che questo non mostrerà effettivamente le dimensioni (insieme ad altri dettagli del file) a meno che non si aggiunga anche l’opzione-l (elenco lungo). Quando si elencano i file per dimensione, è generalmente utile vedere che il comando sta facendo ciò che hai chiesto. Si noti che l’impostazione predefinita è mostrare prima i file più grandi. Aggiungi l’opzione-r per invertire questo (cioè, 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

Elenco dei file per proprietario

Se si desidera elencare i file per proprietario (ad es., in una directory condivisa), è possibile passare l’output del comando ls per ordinare e selezionare la colonna proprietario aggiungendo-k3 per ordinare sul terzo 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
^
|

In effetti, puoi ordinare su qualsiasi campo in questo modo (ad esempio, anno). Basta fare attenzione ad aggiungere un ” n ” – – k5n-se stai ordinando su un campo che è numerico o sarai ordinato in ordine alfanumerico. Questa tecnica di ordinamento è utile anche per ordinare i contenuti dei file, non solo per elencare i file.

Elencare i file per età

Utilizzare l’opzione-t per elencare i file in ordine di età – quanto sono nuovi. Aggiungi l’opzione-r per far apparire i file aggiornati più di recente per ultimi nell’elenco. Uso questo alias per mostrarmi un elenco dei file che ho aggiornato di recente:

$ alias recent='ls -ltr | tail -8'

Nota che i tempi di modifica e modifica dei file sono diversi. Le opzioni-c (modifica) e-t (modifica) non daranno sempre gli stessi risultati. Se cambi le autorizzazioni su un file e nient’altro, – c metterà quei file nella parte superiore dell’output ls mentre-t non lo farà. Se sei curioso della differenza, guarda l’output del 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: -

Elenco dei file per gruppo

Per ordinare i file per i gruppi associati, è possibile passare l’output da un elenco lungo al comando ordina e dirgli di ordinare sulla colonna 4.

$ ls -l | sort -k4

Elencare i file per data di accesso

Per elencare i file per data di accesso (l’accesso più recente è stato effettuato per primo), utilizzare le opzioni-ltu. La ” u “applica l’ordine di quotazione” per data di accesso”.

$ 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

Elenco di più file su una singola riga

A volte un elenco di file condensato è più appropriato per l’attività in questione. Il comando ls ha anche opzioni per questo. Per elencare i file su meno righe possibili, puoi usare format format = comma per separare i nomi dei file con virgole come in questo 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' …

Preferisci lo spazio bianco? Usa invece format format = across.

$ ls --format=across z*z zip zipfiles zipfiles1.bat zipfiles2.batzipfiles3.bat zipfiles4.bat zipfiles.bat zoom_amd64.deb zoomap.pdfzoom-mtg

Aggiunta di profondità alle tue ricerche

Mentre ls elenca generalmente i file in una singola directory, puoi scegliere invece di elencare ricorsivamente i file usando le opzioni-R, approfondendo l’intera profondità delle directory:

$ ls -R zzzzz | grep -v "^$"zzzzz:zzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping

In alternativa, è possibile utilizzare un comando find con una specifica di profondità limitata o illimitata. In questo comando, istruiamo il comando find a cercare solo in tre livelli di directory:

$ find zzzzz -maxdepth 3zzzzzzzzzz/zzzzzzzzz/zzzz/zzzzzzzz/zzzz/zzz/zz

Scegliendo ls vs find

Quando è necessario elencare i file che soddisfano un elenco molto selettivo di requisiti, il comando find è probabilmente uno strumento migliore da usare rispetto a ls.

A differenza di ls, il comando find appare il più profondamente possibile a meno che non lo si costringa. Ha anche molte altre opzioni e un comando-exec che ti permette di intraprendere alcune azioni specifiche una volta trovati i file che stai cercando.

Wrap-Up

Il comando ls ha molte opzioni per elencare i file. Guardali. Si potrebbe trovare alcuni che vi innamorerete.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *