Pregunta

I'd like to run the following:

ls /path/to/files/pattern*

and get

/path/to/files/pattern1 
/path/to/files/pattern2 
/path/to/files/pattern3

However, there are too many files matching the pattern in that directory, and I get

bash: /bin/ls: Argument list too long

What's a better way to do this? Maybe using the find command? I need to print out the full paths to the files.

¿Fue útil?

Solución

This is where find in combination with xargs will help.

find /path/to/files -name "pattern*" -print0 | xargs -0 ls

Note from comments: xargs will help if you wish to do with the list once you have obtained it from find. If you only intend to list the files, then find should suffice. However, if you wish to copy, delete or perform any action on the list, then using xargs instead of -exec will help.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top