我想运行以下内容:
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命令?我需要打印出文件的完整路径。
答案 0 :(得分:28)
这是find
与xargs
结合使用的地方。
find /path/to/files -name "pattern*" -print0 | xargs -0 ls
注释注释: xargs
如果您希望在从find
获取列表后对其进行操作,将会有所帮助。如果您只打算列出文件,那么find
就足够了。但是,如果您希望copy
,delete
或对列表执行任何操作,那么使用xargs
代替-exec
会有所帮助。