238 votes

Lister uniquement les répertoires sous UNIX

Je veux lister uniquement les répertoires dans le chemin spécifié ( ls ne dispose pas d'une telle option). En outre, cela peut-il être fait avec une seule ligne de commande ?

336voto

David Hancock Points 6032

Essayez ceci ls -d */ pour lister les répertoires dans le répertoire courant

102voto

Robin Points 2615

Essayez ça :

find . -maxdepth 1 -type d

25voto

radiospiel Points 1342

Les éléments suivants

find * -maxdepth 0 -type d

filtre essentiellement l'expansion de '*', c'est-à-dire toutes les entrées dans le répertoire courant, par l'option -type d qui présente l'avantage supplémentaire que la sortie est la même que celle de la condition ls -1 * mais seulement avec les répertoires - c'est-à-dire que les entrées ne commencent pas par un point.

13voto

echox Points 2227

Vous pouvez utiliser ls -d */ ou tree -d

Une autre solution serait le globbing, mais cela dépend du shell que vous utilisez et si le globbing pour les répertoires est supporté.

Par exemple ZSH :

zsh # ls *(/)

7voto

mda Points 617
find . -maxdepth 1 -type d -name [^\.]\* | sed 's:^\./::'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X