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.

pawel7318
la source

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.

fduff
la source
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