列出匹配模式的文件,当bash globbing太多时

Dav*_*idR 16 bash ls find

我想运行以下内容:

ls /path/to/files/pattern*
Run Code Online (Sandbox Code Playgroud)

得到

/path/to/files/pattern1 
/path/to/files/pattern2 
/path/to/files/pattern3
Run Code Online (Sandbox Code Playgroud)

但是,有太多文件匹配该目录中的模式,我得到了

bash: /bin/ls: Argument list too long
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法呢?也许使用find命令?我需要打印出文件的完整路径.

jay*_*ngh 30

这是find结合的地方xargs将有所帮助.

find /path/to/files -name "pattern*" -print0 | xargs -0 ls
Run Code Online (Sandbox Code Playgroud)

注释中的注释: xargs如果您希望从列表中获取该列表,将会有所帮助find.如果您只打算列出文件,那么find就足够了.但是,如果您希望copy,delete或在列表上执行任何操作,那么使用xargs而不是-exec帮助.

  • 实际上, find /path/to/files -name "pattern*" 似乎完全符合我的要求——有什么理由不使用它?谢谢! (2认同)