我想运行以下命令:

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命令?我需要打印出文件的完整路径。

最佳答案

这就是findxargs结合使用将有帮助的地方。

find /path/to/files -name "pattern*" -print0 | xargs -0 ls

备注:从xargs获取列表后,如果您希望处理该列表,find将有所帮助。如果您只想列出文件,那么find就足够了。但是,如果您希望copydelete或对列表执行任何操作,则使用xargs而不是-exec将有帮助。

关于bash - 当bash遍历太多时列出匹配模式的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17382190/

10-16 17:25