web-dev-qa-db-fra.com

Répertorie tous les fichiers sans extension

Je veux lister tous les fichiers d'un répertoire qui n'ont pas d'extensions.

Par exemple:

$ ls
a.txt    b      c.pdf     d     e.png
$ ls -someOption
b       d

Quelle commande puis-je utiliser à la place de ls -someOption?

11
NewMrd
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot

Vous constaterez que cela vous montrera le contenu de chaque répertoire du répertoire de travail. Si vous ne le souhaitez pas, utilisez:

ls -d !(*.*)

Vous pouvez mettre shopt -s extglob dans votre ~/.bashrc pour l'activer à chaque ouverture d'un terminal. Il existe déjà une ligne dans le code par défaut Ubuntu ~/.bashrc (la ligne 29 pour moi le 13.04) que vous pouvez supprimer pour commenter l'activer (et globstar).

Voir wiki de Greg pour plus d'informations sur les différentes options de globbing du Shell. Notez qu'il s'agit d'une propriété du shell bash plutôt que de la commande ls. Vous pouvez donc l'utiliser avec d'autres commandes.

Alternativement, vous pouvez utiliser

ls --ignore='*.*'

ou

ls -I '*.*'

... qui est une option interne ls, mais extglob peut être appliqué à n'importe quelle commande arbitraire et est donc plus utile à mon avis.

14
evilsoup

ls | grep -v \\. et ls | grep -v "\." fonctionnent tous les deux.

9
krowe