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:
ls
: liste le contenu d’un répertoire
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