错误:"grep:参数列表太长"

Joh*_*ohn 14 unix linux bash grep find

我试图运行以下命令,但得到参数太长的错误.你能帮我吗?.

HOST# grep -rl 'pattern' /home/*/public_html/*
-bash: /bin/grep: Argument list too long
Run Code Online (Sandbox Code Playgroud)

有没有办法覆盖此错误并grep我想要在所有用户public_html目录中的模式匹配文件.同一台服务器中大约有500多个用户.

Bar*_*mar 33

使用 find

find /home/*/public_html -type f -exec grep -l 'pattern' {} +
Run Code Online (Sandbox Code Playgroud)

+修改使得组管理的块的文件名.

但是,你可以这样做grep -r.这个参数应该是目录名,而不是文件名.

grep -rl 'pattern' /home/*/public_html
Run Code Online (Sandbox Code Playgroud)

这将只有500多个参数,而不是数千个文件名.

  • 我知道你来自@EdMorton的地方,但它就像编程语言中的语法糖.有时它不是最佳方式,但我倾向于欣赏当一个工具偏离他们的方式一点点来帮助我更快更容易地做事. (2认同)