Beats me, but it's definitely not the file list being too long. I just created a folder with 5,923 files in it, all with long names. The total length of the file list is 276,718 bytes, but having find iterate them all and pass them to ls -l@ {} + does not result in the ENOMEM error. It does split the list up and launches the ls program several times, though, so this would actually be a decent substitute for xargs if it worked right, if less efficient (xargs launches the ls program twice for my test folder, whereas find -exec + launches it four times). This also means that the file list can't end up exceeding ARG_MAX, though. It's something else.