Selon la page de manuel de bash:
bash recherche dans chaque mot les caractères *,? et [. Si l'un de ces caractères apparaît, le mot est considéré comme un modèle et remplacé par une liste alphabétique de noms de fichiers correspondant au modèle
et du noeud info pour ls
Le programme `ls 'répertorie les informations sur les fichiers (de tout type, y compris les répertoires). Les options et les arguments de fichier peuvent être mélangés arbitrairement, comme d'habitude.
Pour les arguments de ligne de commande sans option qui sont des répertoires, par défaut, «ls» répertorie le contenu des répertoires, de manière non récursive, et en omettant les fichiers dont le nom commence par «.». Pour les autres arguments sans option, par défaut, `ls 'répertorie uniquement le nom du fichier. Si aucun argument sans option n'est spécifié, 'ls' répertorie le contenu du répertoire courant.
donc quand vous donnez ls d*
, d * est développé en une liste triée de tous les noms de fichiers / répertoires commençant par d. Donc, votre commande devient
ls dump
et comme dump est un nom de répertoire, vous obtenez la liste de tous les fichiers dans le répertoire "dump" mais lorsque vous donnez ls D*
, D * est développé en " Desktop Documents Downloads Dropbox ", donc la commande devient
ls Desktop Documents Downloads Dropbox
et comme ce sont tous des répertoires, vous obtenez la liste des fichiers dans un répertoire individuel. S'il y avait un fichier commençant par D dans le répertoire actuel, il aurait été répertorié séparément.
ls p*
et il a montré un dossier parce qu'il existe et unls P*
montre le Photos Public dossier car il n'y a pas de fichier commençant par P . Et quand j'ai créé un répertoire nommé poo , il est apparu lels p*
ls d * et D * répertorient les fichiers et dossiers correspondant respectivement à d * et D *, le comportement est le même, il doit y avoir eu une erreur dans votre test.
Si vous souhaitez répertorier uniquement les noms de dossier et non le contenu du dossier, vous devez utiliser "-d":
la source
Comme suggéré ci-dessus, l'
-d
option est le chemin à parcourir. Ajouterà mon
~/.bashrc
dossier fonctionne bien pour moi.la source
ld - The GNU linker
, ce qui empêchera l'OP de compiler et de lier des programmes. Utilisezalias lsd='ls -d'
plutôt. Avant de créer un alias pour quelque chose, commefoo
toujours,type foo
foo
foo