Cosa significa "ls --directory"?

16

Nella mia versione di Ubuntu, man ls ha le prossime informazioni su --directory:

list directory entries instead of contents, and do not dereference symbolic links

Quindi sono un po 'confuso su come funziona. Ho usato il comando ls --directory e mi aspettavo una lista con tutte le directory, ma invece ho ottenuto .

Quindi cosa fa esattamente ls --directory o ls -d ?

    
posta Pau Chorro 04.03.2017 - 18:14

5 risposte

24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

La directory corrente è rappresentata come . , quindi è quello che ls -d sta elencando.

Le directory all'interno della directory corrente sono i contenuti della directory e pertanto non sono mostrate con questa opzione.

Uso l'opzione -d in un alias per visualizzare file e directory nascosti

alias l.='ls -dC .* --color'

Senza -d , questo elencherà anche il contenuto delle directory nascoste, che non è quello che voglio.

Un altro uso è quando voglio vedere i metadati di una directory usando l'opzione -l , non il suo contenuto:

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

Se vuoi un elenco di directory nella directory corrente puoi usare

ls -d */
    
risposta data Zanna 04.03.2017 - 18:20
11

L'utilizzo di ls solo con -d è quasi inutile. Fornisce informazioni sulla directory stessa. Non ne elenca i contenuti.

Ecco perché non vedi un elenco di directory. Le directory che ci si aspettava di vedere sono i "contenuti" della directory corrente

Se corri semplicemente ls -d mostra la directory corrente di . .

Se ha senso eseguirlo con altri tasti come -l .

ls -ld mostrerà i permessi della directory corrente.

[email protected]:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

Puoi anche vedere i permessi di qualsiasi altra directory come

ls -ld /bin

[email protected]:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

Se esegui ls -l senza -d avrai l'elenco di tutte le autorizzazioni per file e cartelle nella directory corrente. Se non ne hai bisogno, questo è un buon esempio per l'utilizzo di ls -ld .

Puoi elencare le directory in quella corrente

ls -d */
    
risposta data Pilot6 04.03.2017 - 18:21
6

Usare ls -d di per sé è abbastanza inutile perché senza un parametro restituisce sempre . . Dopo aver specificato un parametro ha senso comunque. Ad esempio se il tuo nome utente è rick e vuoi vedere tutte le directory a casa tua:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/
    
risposta data WinEunuuchs2Unix 04.03.2017 - 18:40
5

Lasciami spiegare con esempi:

  1. ls : elenca i contenuti di una directory

  2. ls -d o ls --directory : elenca le directory stesse, non i loro contenuti

Esempi:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

Il tuo caso di ls -d questo dice di elencare solo mostrami la directory in cui non sono nel suo contenuto (cioè . in termini di Linux), quindi il risultato è: . .

Ma se avessi detto: ls , allora vedrai tutto ciò che è presente nella directory corrente . .

    
risposta data George Udosen 04.03.2017 - 18:20
4

ls -d elenca le directory su se stessi anziché sul loro contenuto. I file sono elencati come normali. Esamina man ls per visualizzare la descrizione di tutte le opzioni.

. è la directory stessa, la stessa che si usa quando si esegue un comando dalla directory corrente, ./runscript.sh

.. è la directory padre, il genitore del directore corrente, come in cd .. per spostarsi al passo verso l'alto nella gerarchia delle directory

    
risposta data Soren A 04.03.2017 - 18:24

Leggi altre domande sui tag