Liste d'arguments trop longue lors de l'exécution de la command "$ PWD" / * de ls -d

J'essaye d'exécuter

ls -d "$PWD"/* > formmlFileList43k.list 

Mais j'obtiens l'erreur suivante:

bash: /bin/ls: Argument list too long

J'ai lu en utilisant un tuyau n'aura pas une telle limitation, comment puis-je utiliser un tuyau qui accomplira la même chose que:

 ls -d "$PWD"/* > formmlFileList43k.list 

Toute aide serait appréciée

Vous avez trop d'éléments dans le directory. Cela provoque l'expansion du shell * dans un argument de command line qui dépasse ARG_MAX octets:

 $ grep ARG_MAX /usr/include/linux/limits.h #define ARG_MAX 131072 /* # bytes of args + environ for exec() */ 

Je vous suggère d'utiliser find comme solution de contournement:

 $ find "${PWD}" -mindepth 1 -maxdepth 1 > formmlFileList43k.list 

EDIT: @hagello a écrit une note importante sur les noms de files commençant par un point. Ces files doivent être exclus de la sortie de find . Ainsi, la solution de contournement correcte est la suivante:

 $ find "${PWD}" -mindepth 1 -maxdepth 1 '!' -name '.*' > formmlFileList43k.list