Question

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.

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top