包含grep的参数

有人可以解释为什么当我打电话给grep时,我会得到以下输出吗?

dbliss@nx5[~]> grep -rnwl --include=ardid.sh.e* . -e "pkg_resources"
grep: ./.pulse/a319a33547084e303e0286aa00000023-runtime: Permission denied
grep: ./.pulse/2d3380c658b942aac267d6570000001f-runtime: Permission denied
grep: ./.pulse/d1aa29d3e0e227d33d032c9f00000020-runtime: Permission denied
grep: ./.pulse/e7a8f36648b96d90ecbddd2f00000018-runtime: Permission denied
grep: ./.pulse/922bdeb7e34db855d003e2fd00000019-runtime: Permission denied
grep: ./.pulse/2e970606c3a2bfa06aa690e600000018-runtime: Permission denied
grep: ./.pulse/c113767245ecdc7cb59125af00000017-runtime: Permission denied
grep: ./.pulse/0202df89e10e160883b6aa8200000021-runtime: Permission denied

我试图限制搜索到符合模式ardid.sh.e* - 即,从ardid.sh.开始ardid.sh. ,之后是其他任何字符。 但是,输出显示,在一堆文件.pulse目录搜索到不包括ardid在他们的名字。

如果这是错误的呼叫,我应该做什么?


检查这些文件是否是文件,而不是目录或符号链接。

grep可能试图访问它们以搜索与您的模式相匹配的文件,并且尽管使用了--include参数,但仍然失败。


最有可能的是,输出不是grep产生的标准输出的一部分,而是标准错误输出。 grep必须访问文件内容才能扫描搜索模式。 为此,它需要文件的读取权限和进入目录的权限。 如果文件或目录无法获得访问权限,它会发布该报告。

如果您简单地删除错误输出以仅取回标准输出,您可以轻松测试:

grep -rnwl --include=ardid.sh.e* . -e "pkg_resources" 2 > /dev/null

可能该命令的输出不会再显示这些条目......

链接地址: http://www.djcxy.com/p/78059.html

上一篇: include argument to grep

下一篇: grep with regular expression in command line