LINUX

Come elencare solo le directory in Linux

elenca solo le directory Linux

Il comando ls in Linux viene utilizzato per elencare i file e le directory in una directory. Ma se vuoi elencare le directory solo usando il comando ls, quali sono le opzioni?

Impariamo come usare il concatenamento dei comandi (usando le pipe) per vedere quali directory sono presenti in una data directory.

In questo tutorial, ti mostrerò diversi modi per elencare le directory solo in Linux.

Elencare le directory utilizzando i caratteri jolly

Il metodo più semplice consiste nell’utilizzare i caratteri jolly. Tutte le directory terminano con una barra.

$ ls -d */
Desktop/ Downloads/ looped/ Music/ orb.db/ Pictures/ Templates/ Videos/ Virus/
Documents/ jvm/ mounts/ netbeans-6.9/ PacketTracer5/ Public/ Ubuntu One/ VirtualBox VMs/

Per la lunga lista, basta aggiungere -l opzione.

$ ls -ld */
drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop/
drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents/
drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads/
drwxr-xr-x 2 raghu raghu 4096 2012-03-27 10:48 jvm/
drwxr-xr-x 2 raghu raghu 4096 2011-10-29 13:02 looped/
drwxr-xr-x 2 root root 4096 2011-11-15 01:23 mounts/
drwxr-xr-x 2 raghu raghu 4096 2011-10-26 16:03 Music/
drwxr-xr-x 12 raghu raghu 4096 2012-01-24 19:29 netbeans-6.9/
drwxr-xr-x 3 raghu raghu 4096 2012-04-17 12:23 orb.db/
drwxr-xr-x 4 raghu raghu 4096 2011-11-16 13:03 PacketTracer5/
drwxr-xr-x 5 raghu raghu 4096 2012-07-16 11:41 Pictures/

Usando l’opzione -F e grep

Il -F Opzioni aggiunge una barra. Quindi possiamo grep directory solo con righe “grep” che terminano con una barra (/).

$ ls -lF | grep /$
drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop/
drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents/
drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads/
drwxr-xr-x 2 raghu raghu 4096 2012-03-27 10:48 jvm/
drwxr-xr-x 2 raghu raghu 4096 2011-10-29 13:02 looped/
drwxr-xr-x 2 root root 4096 2011-11-15 01:23 mounts/
drwxr-xr-x 2 raghu raghu 4096 2011-10-26 16:03 Music/
drwxr-xr-x 12 raghu raghu 4096 2012-01-24 19:29 netbeans-6.9/
drwxr-xr-x 3 raghu raghu 4096 2012-04-17 12:23 orb.db/
drwxr-xr-x 4 raghu raghu 4096 2011-11-16 13:03 PacketTracer5/
drwxr-xr-x 5 raghu raghu 4096 2012-07-16 11:41 Pictures/

o solo per il nome della directory, senza -l opzione,

$ ls -F | grep /$
Desktop/
Documents/
Downloads/
jvm/
looped/
mounts/
Music/
netbeans-6.9/
orb.db/
PacketTracer5/
Pictures/

Usando l’opzione -l e grep

Nella lunga lista di ls ie ls -lpossiamo “greppare” le righe che iniziano con d.

$ ls -l | grep ^d
drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop
drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents
drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads
drwxr-xr-x 2 raghu raghu 4096 2012-03-27 10:48 jvm
drwxr-xr-x 2 raghu raghu 4096 2011-10-29 13:02 looped
drwxr-xr-x 2 root root 4096 2011-11-15 01:23 mounts
drwxr-xr-x 2 raghu raghu 4096 2011-10-26 16:03 Music

Possiamo estrarre solo i nomi dei file stampando solo le ultime colonne.

$ ls -l | grep ^d | awk '{print $8,$9}'
Desktop
Documents
Downloads
jvm
looped
mounts
Music

Usando il comando echo

Possiamo usare il comando echo per elencare le voci che seguono una barra (/).

$ echo */
Desktop/ Documents/ Downloads/ jvm/ looped/ mounts/ Music/ netbeans-6.9/ orb.db/ PacketTracer5/ Pictures/

Usando printf

Analogamente, printf può essere utilizzato per evidenziare le stringhe che terminano con una barra (/).

$ printf '%sn' */
Desktop/
Documents/
Downloads/
jvm/
looped/
mounts/

Usando il comando trova

Possiamo sempre trovare i file in base ai loro tipi di file usando il comando find:

$ find . -maxdepth 1 -type d
.
./.netbeans-registration
./.gvfs
./.shotwell
./.gegl-0.0
./.cache
./.ssh
./VirtualBox VMs
./.mission-control
./.gnome2
./.jedit
./.config
./mounts

L’opzione maxdepth nel comando precedente specifica che la ricerca deve essere eseguita solo nella directory specificata. Altrimenti, il comando find troverà le directory in modo ricorsivo, esaminando ogni directory e le relative sottodirectory. Inoltre, in questo comando vengono visualizzate anche le directory nascoste. In tutti i metodi di cui sopra che utilizzano il comando ls, lo stesso può essere ottenuto da -a opzione. Per esempio,

$ ls -laF | grep /$
drwxr-xr-x 60 raghu raghu 4096 2012-09-28 20:18 ./
drwxr-xr-x. 6 root root 4096 2012-06-25 01:08 ../
drwx------ 3 raghu raghu 4096 2011-10-29 14:04 .adobe/
drwx------ 28 raghu raghu 4096 2012-09-28 20:07 .cache/
drwx------ 3 raghu raghu 4096 2011-10-26 16:06 .compiz/
drwxr-xr-x 26 raghu raghu 4096 2012-09-27 00:20 .config/
drwx------ 3 raghu raghu 4096 2011-10-26 16:03 .dbus/
drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop/
drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents/
drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads/
drwxr-xr-x 7 raghu raghu 4096 2012-09-15 23:21 .drpython/
drwxr-xr-x 2 raghu raghu 4096 2012-09-10 14:28 .fontconfig/
drwx------ 5 raghu raghu 4096 2012-09-28 20:07 .gconf/
drwx------ 2 raghu raghu 4096 2012-09-28 23:10 .gconfd/
drwx------ 4 raghu raghu 4096 2011-11-26 20:23 .gegl-0.0/
drwxr-xr-x 22 raghu raghu 4096 2012-09-27 01:44 .gimp-2.6/
drwx------ 11 raghu raghu 4096 2012-09-22 05:23 .gnome2/

o

$ ls -la | grep ^d
drwxr-xr-x 60 raghu raghu 4096 2012-09-28 20:18 .
drwxr-xr-x. 6 root root 4096 2012-06-25 01:08 ..
drwx------ 3 raghu raghu 4096 2011-10-29 14:04 .adobe
drwx------ 28 raghu raghu 4096 2012-09-28 20:07 .cache
drwx------ 3 raghu raghu 4096 2011-10-26 16:06 .compiz
drwxr-xr-x 26 raghu raghu 4096 2012-09-27 00:20 .config
drwx------ 3 raghu raghu 4096 2011-10-26 16:03 .dbus
drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop
drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents
drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads
drwxr-xr-x 7 raghu raghu 4096 2012-09-15 23:21 .drpython

Grazie per aver letto questo articolo. Cosa ne pensi.

Leggi anche:

Related Articles

Lascia un commento

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

Back to top button
Close