我想运行以下命令:
ls /path/to/files/pattern*
然后得到
/path/to/files/pattern1
/path/to/files/pattern2
/path/to/files/pattern3
但是,有太多的文件与该目录中的模式匹配,我得到
bash: /bin/ls: Argument list too long
最好的办法是什么?也许用find命令?我需要打印出文件的完整路径。
最佳答案
这就是find
与xargs
结合使用将有帮助的地方。
find /path/to/files -name "pattern*" -print0 | xargs -0 ls
备注:从
xargs
获取列表后,如果您希望处理该列表,find
将有所帮助。如果您只想列出文件,那么find
就足够了。但是,如果您希望copy
,delete
或对列表执行任何操作,则使用xargs
而不是-exec
将有帮助。关于bash - 当bash遍历太多时列出匹配模式的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17382190/