Que signifie `ls --directory`?

17

Dans ma version Ubuntu, l'homme ls a les informations suivantes sur --directory:

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

Je suis donc un peu confus comment cela fonctionne. J'ai utilisé la commande ls --directoryet je m'attendais à une liste avec tous les répertoires mais à la place, j'ai.

Alors, que fait ls --directoryou fait exactement ls -d?

Pau Chorro
la source

Réponses:

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

Le répertoire actuel est représenté comme .c'est ce qui ls -dest répertorié.

Les répertoires à l'intérieur du répertoire courant sont le contenu du répertoire et ne sont donc pas affichés avec cette option.

J'utilise l' -doption dans un alias pour afficher les fichiers et répertoires cachés

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

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

Une autre utilisation est quand je veux voir les métadonnées d'un répertoire en utilisant l' -loption, pas 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 */
Zanna
la source
ls -dC .* --colorrépertorie également les fichiers cachés et pas seulement les répertoires.
Pau Chorro
1
oui @PauChorro, je dis effectivement cela dans ma réponse. Je l'utilise pour afficher tous les fichiers et répertoires cachés
Zanna
1
@PauChorro J'ai ajouté un moyen de lister uniquement les répertoires
Zanna
1
Dans ma version Ubuntu l' man lsa l'info suivante: list directory entries instead of contents, and do not derefer‐ ence symbolic links. Donc, dans votre version est une meilleure explication de ce qu'elle fait vraiment.
Pau Chorro
1
@ Pilot6, il répertoriera également les fichiers
Zanna
11

Utiliser lsuniquement avec -dest 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 de liste de répertoires. Les répertoires que vous vous attendiez à voir sont le "contenu" du répertoire courant

Si vous exécutez simplement, ls -dil affiche le répertoire actuel par ..

Si cela a du sens de l'exécuter avec d'autres touches comme -l.

ls -ld affichera les autorisations du répertoire actuel.

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

Vous pouvez également voir les autorisations 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 -lsans, -dvous aurez la liste de toutes les autorisations pour les fichiers et dossiers dans le répertoire en cours. Si vous n'en avez pas besoin, c'est un bon exemple d' ls -ldutilisation.

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

ls -d */
Pilot6
la source
6

L'utilisation ls -dpar elle-même est assez inutile car sans paramètre elle revient toujours .. Une fois que vous avez spécifié un paramètre, il est logique. Par exemple, si votre nom d'utilisateur est ricket que vous souhaitez voir tous les répertoires de votre utilisation domestique:

$ 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/
WinEunuuchs2Unix
la source
5

Permettez-moi d'expliquer avec des exemples:

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

  2. ls -dou ls --directory: répertorier 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 -dcette liste dit ne me montrer le répertoire que je suis pas son contenu ( par exemple .en termes de Linux), donc le résultat est: ..

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

George Udosen
la source
4

ls -dliste les répertoires eux-mêmes au lieu de leur contenu. Les fichiers sont répertoriés comme normaux. Regardez man lspour 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 à partir du répertoire actuel, ./runscript.sh

..est le répertoire parent, le parent du directore actuel, comme cd ..pour se déplacer au niveau supérieur dans la hiérarchie du répertoire

Soren A
la source