Que signifie `ls –directory`?

Dans ma version Ubuntu, man ls a la prochaine information sur –directory

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

Donc, je suis un peu confus comment ça marche. J’ai utilisé la commande ls --directory et je m’attendais à une liste avec tous les répertoires, mais à la place, j’ai eu .

Alors que fait exactement ls --directory ou ls -d ?

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

Le répertoire actuel est représenté par . c’est ce que ls -d liste.

Les répertoires du répertoire en cours sont le contenu du répertoire et ne sont donc pas affichés avec cette option.

J’utilise l’option -d dans un alias pour afficher des fichiers et des répertoires cachés

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

Sans -d , cela listera aussi le contenu des répertoires cachés, ce qui n’est pas ce que je veux.

Une autre utilisation, c’est lorsque je veux voir les métadonnées d’un répertoire à l’aide de l’option -l , et non de son contenu:

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

Si vous voulez une liste de répertoires dans le répertoire courant, vous pouvez utiliser

 ls -d */ 

Utiliser ls uniquement avec -d est presque inutile. Il donne des informations sur le répertoire lui-même. Il ne répertorie pas son contenu.

C’est pourquoi vous ne voyez pas une liste de répertoires. Les répertoires que vous vous attendiez à voir sont les “contenus” du répertoire en cours

Si vous exécutez simplement ls -d , le répertoire actuel est affiché . .

Si cela a du sens de l’exécuter avec d’autres clés comme -l .

ls -ld affichera les permissions du répertoire en cours.

 pilot6@Pilot6:~$ ls -ld drwxrwxr-x 1 pilot6 pilot6 2570 Mar 4 12:14 . 

Vous pouvez également voir les permissions de tout autre répertoire comme

 ls -ld /bin pilot6@Pilot6:~$ ls -ld /bin drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin 

Si vous exécutez ls -l sans -d vous aurez la liste de toutes les permissions pour les fichiers et les dossiers du répertoire en cours. Si vous n’en avez pas besoin, c’est un bon exemple d’utilisation de ls -ld .

Vous pouvez lister les répertoires du répertoire actuel en

 ls -d */ 

Utiliser ls -d par lui-même est plutôt inutile car sans paramètre, il retourne toujours . . Une fois que vous avez spécifié un paramètre, cela a du sens. Par exemple, si votre nom d’utilisateur est rick et que vous voulez voir tous les répertoires de votre maison, utilisez:

 $ 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/ 

Laissez-moi vous expliquer avec des exemples:

  1. ls : liste le contenu d’un répertoire

  2. ls -d ou ls --directory : répertorie les répertoires eux-mêmes, pas leur contenu

Exemples:

 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 

Votre cas de ls -d cela dit de lister ne me montre que le répertoire dans lequel je me trouve, pas son contenu (ie . En termes de Linux), donc le résultat est:. .

Mais si vous aviez dit: ls , alors vous verrez tout ce qui est présent dans le répertoire courant . .

ls -d liste les répertoires eux-mêmes au lieu de leur contenu. Les fichiers sont listés comme d’habitude. Regardez dans l’ man ls pour voir la description de toutes les options.

. est le répertoire lui-même, le même que vous utilisez lors de l’exécution d’une commande du répertoire en cours, ./runscript.sh

.. est le répertoire parent, le parent du répertoire actuel, comme dans cd .. pour aller plus loin dans la hiérarchie des répertoires