当我打电话给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.
开头,后跟任意数量的其他字符。但是输出显示.pulse
目录中的一堆文件在名称中没有包含ardid
。
如果这是一个错误的电话,我应该拨打什么电话?
答案 0 :(得分:2)
检查它们是否实际上是文件,而不是目录或符号链接。
grep可能正在尝试访问它们以搜索与您的模式匹配的文件,并且尽管有--include
参数但仍然失败。
答案 1 :(得分:-2)
输出很可能是不标准输出grep
产生的部分,而是标准错误输出。 grep
必须访问文件内容才能扫描搜索模式。为此,它需要对文件的读取权限和输入目录的权限。如果无法获得访问权限,它会按文件或目录发布该报告。
如果您只是删除错误输出以仅返回 标准输出,则可以轻松自行测试:
grep -rnwl --include=ardid.sh.e* . -e "pkg_resources" 2 > /dev/null
该命令的输出可能不再显示那些条目......