Risposte:
Se vuoi essere in grado di distinguere facilmente le cartelle dai file, usa qualcosa di simile ls -alhF. Di solito definisco lun alias per quello, cioè. Ho messo la linea alias l='ls -alhF'nel mio .bashrc.
per elencare solo le cartelle provare: ls -d */
-delenca le directory stesse, non i loro contenuti. Per spiegarlo, considera cosa succede se digitiamo
ls */.lsscende di un livello verso il basso, in ciascuna sottodirectory, ed elenca tutti i file in ognuno di quelli in sequenza
Fonte: man ls
*/*/è noto come "glob" in UNIX. (vedi Wikipedia per maggiori dettagli). Ma fondamentalmente significa "qualsiasi nome di file che termina con una barra". In UNIX, le directory sono in realtà solo file, fondamentalmente. Ma hanno un nome speciale che termina in una barra, in modo che il sistema operativo sappia che sono directory (o cartelle, nel linguaggio quotidiano). E l'asterisco *è tecnicamente un carattere jolly che indica "qualsiasi stringa di caratteri".
Questo paragrafo non riguarda specificamente la tua domanda, ma se non hai mai letto su questo, sarà bello vederlo. I globi sono diversi dalle espressioni regolari, come spiegato (parzialmente) in Qual è la differenza tra espressioni regolari e globbing? Ci sono stati interi libri scritti su espressioni regolari, ma ci sono un sacco di modi diversi per codificare espressioni di corrispondenza dei modelli.
Dato che sono un utente molto inesperto, adoro questo sito web. Ti dice tutto quello che vuoi sapere sui comandi bash, in alcuni casi ti dà persino degli esempi. Molto utile.
Nel tuo caso:
ls per elencare i filels -a per includere file nascostils -l per un lungo formato di elencols -al | grep ^d
include file nascosti '-a' grep ^ d inizia con 'd' che significa che la directory quando il nome inizia con la directory dot è nascosta
per elencare ricorsivamente vedere questo
find ./ -type d | less
./ ..................... means starts find in current folder
-type .................. indicates the type to be searched
d ...................... means directory
| ...................... redirects the command
less ................... enables paging using the keyboard arrows and leave with q
ls -1 -d */
dove
-1
elenca una directory per riga.
Per visualizzare le cartelle della home directory lsè sufficiente il comando: questo sarà semplice.
$ ls
Desktop Downloads hadoop Pictures Templates
Documents examples.desktop Music Public Videos
Puoi anche specificare più directory ls ~ /usr
$ ls ~ /usr
/home/hadoop1:
Desktop Downloads hadoop Pictures Templates
Documents examples.desktop Music Public Videos
/usr:
bin games include lib local locale sbin share src
Per ottenere l'output in formato lungo possiamo usare l' -lopzione
$ ls -l
total 48
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Desktop
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Documents
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Downloads
-rw-r--r-- 1 hadoop1 hadoop1 8980 Jul 1 2017 examples.desktop
drwxr-xr-x 10 hadoop1 hadoop1 4096 Jul 1 2017 hadoop
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Music
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Pictures
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Public
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Templates
drwxr-xr-x 2 hadoop1 hadoop1 4096 Jul 1 2017 Videos