Trouver tous les fichiers avec un nom de fichier commençant par une chaîne spécifiée pouvant correspondre à des milliers de fichiers

J’ai un répertoire contenant environ 100 000 fichiers, et je veux exécuter certaines fonctions sur tous les fichiers en commençant par une chaîne spécifiée, qui peut correspondre à des dizaines de milliers de fichiers.

j’ai essayé

ls myssortingng* 

mais cela revient avec l’erreur bash “Trop d’arguments”. Mon prochain plan était d’utiliser

 find ./myssortingng* -type f 

mais cela a le même problème.

Le code doit ressembler à quelque chose

 for FILE in `find ./myssortingng* -type f` do #Some function on the file done 

Merci d’avance, Rik

utilisation

 find . -name 'myssortingng*' 
 ls | grep "^a" 

vous donnera tous les fichiers commençant par la lettre a et fonctionnera sur le répertoire en cours alors que find explorera les sous-répertoires par défaut.

Je ne dis pas que c’est mieux – juste un angle différent.

Si vous souhaitez limiter votre recherche uniquement aux fichiers, vous devriez envisager d’utiliser -type f dans votre recherche

essayer d’utiliser également -iname pour la recherche insensible à la casse

Exemple:

 find /path -iname 'yourssortingng*' -type f 

Vous pouvez également effectuer certaines opérations sur les résultats sans signe de conduite ou xargs

Exemple:

Rechercher des fichiers et afficher leur taille en Mo

 find /path -iname 'yourssortingng*' -type f -exec du -sm {} \;