Comment puis-je empêcher ls de descendre dans les répertoires, similaire à prune for find?


12

Si je tape, ls *ro*j'obtiens également des fichiers dans des sous-répertoires qui correspondent au *ro*modèle.
Existe-t-il une option pour ls similaire au pruneau?

Idéalement un drapeau, sinon peut-être un exécutif?

Réponses:


25

Utilisez l' -dinterrupteur:

ls -d *ro*

.....


J'ai écrit un script qui obtient les bits d'accès au dossier (convertis en notation 755 ou 644), la date et l'heure modifiées et le nom du dossier, puis envoie les informations via un message texte. J'avais besoin que ce soit <140 caractères. Cela a aidé, merci.
user208145

4

Vous pouvez utiliser:

ls | grep ro

Pour accomplir la tâche. Canalisez la sortie lsqui ne produit que le contenu du répertoire courant vers grepet pour sortir sélectivement les fichiers correspondant au modèle d'expression régulière.


-1 Comment le grep saurait-il si la correspondance de modèle était dans le répertoire ou un sous-répertoire?
Michael Durrant

De plus, il ne retourne rien. Essayez-le.
Michael Durrant

1
Par défaut, ls affiche uniquement le contenu du répertoire en cours. Donc, passer cette sortie à grep ne renvoie que les données qui correspondent à l'expression régulière donnée. J'ai essayé la commande donnée sur mon système Arch et cela fonctionne parfaitement.
darnir

Étant donné que grep prend une expression régulière comme entrée, n'ajoutez pas les astérisques autour de ro. Comme je l'ai mentionné, exécutez simplement grep ro. C'est un hack grossier par rapport à la réponse de Manatwork, mais fonctionne parfaitement bien.
darnir

Si vous avez un nombre absurde de fichiers, cependant, le globbing dans la réponse de manatwork peut atteindre la limite de la longueur de la ligne de commande. Ce ne sera pas le cas.
Izkata
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.