trouver des fichiers sans extension


43

Disons que j'ai:

foo.txt
bar
baz.ooo

Si je l'utilise ls -1 !(*.*)alors j'aurai seulement barsur la sortie. Génial, je souhaite maintenant obtenir les mêmes résultats avec find, dont certains find -regexferont l'affaire.

REMARQUE:

find -name !(*.*)Ce n’est pas la réponse car !(*.*)c’est toujours le glob de Bash que je ne peux PAS utiliser.

Réponses:


64

vous pouvez utiliser: find . -type f ! -name "*.*" the !nie l'expression suivante, ici un nom de fichier contenant un '.'

vous pouvez également utiliser l' -maxdepthoption pour réduire la profondeur de la recherche.


1
J'aime beaucoup votre réponse, car la mienne a d'autres contraintes pour les noms de fichiers et que le vôtre est à l'épreuve des balles.
pawel7318

C'est aussi très bien quand ls -1 !(*.*)ça ne marchera pas parce que !donne "L'événement n'a pas été trouvé".
Noumenon

2
@Noumenon faire set +Hpour résoudre cela
pawel7318

1
Si vous traitez .gitignorecomme un fichier sans extension (comme path.extname () du nœud), utilisez-le à la ! -name "?*.*"place de! -name "*.*"
Johnny Wong le
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.