Grep 确认:权限被拒绝的输出以及结果

Grep 确认:权限被拒绝的输出以及结果,grep,macvim,ack,Grep,Macvim,Ack,当我确认某些内容时,通常会得到如下输出: Ack: tmp/nonces/4e8c9698-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-mRPtTixYnWzzGcPpbIwx9scpDnE: Permission denied Ack: tmp/nonces/4e8cbba9-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-oARiyZ2BwCEskqiPzrfQd1FI_fI: Permi

当我确认某些内容时,通常会得到如下输出:

Ack: tmp/nonces/4e8c9698-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-mRPtTixYnWzzGcPpbIwx9scpDnE: Permission denied
Ack: tmp/nonces/4e8cbba9-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-oARiyZ2BwCEskqiPzrfQd1FI_fI: Permission denied
Ack: tmp/nonces/4e8d0b16-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-M8ARATBrrCt8Dzx_AUVyqQPlesE: Permission denied
Ack: tmp/nonces/4e8df921-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-qOogYRrIy2P4eFSD0dps0axw41k: Permission denied
Ack: tmp/nonces/4e8f25a5-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-.gfEmcarFxfuir1JeQeKjevK4Js: Permission denied
Ack: tmp/nonces/4e8f66ac-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-A_iNHhXoUELEWtENxyYp8H_HsJA: Permission denied
Ack: tmp/nonces/4e8f6ad6-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-xISGU82nDE6h.hGAKD7t8kfP3f0: Permission denied
Ack: tmp/nonces/4e8f6c43-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-8_4stPggeXhICZbspC7n3JPbbwU: Permission denied
Ack: tmp/nonces/4e9021f8-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-4LlZ.TfExXsf3L2woyFw9.LJF1U: Permission denied
Ack: tmp/nonces/4e90964d-https-www.google.com-kkEIoIiSEjUBRD.lRR_tT9V6ccE-MQcsEojzduPoDsosj.gnN5jPrmQ: Permission denied
这是什么?我如何修复/使其消失


编辑:这仅在我使用Ack插件时在MacVim输出中发生。正常确认不会这样做。

除您之外的其他用户将使用
/tmp
目录,并且您将无权读取这些文件或目录(即使您是唯一使用该机器的用户,各种
root
进程仍将使用
/tmp
目录)。似乎没有一个
ack
选项可以不抱怨权限问题,所以您只需丢弃这些行。一种简单的方法是将所有
ack
打印的内容扔掉到
stderr
,如下所示:

alias ack='ack $* 2> /dev/null'
但是,这将丢弃所有的确认错误。要放弃“权限被拒绝”错误,需要做更多的工作。假设您正在使用
bash
作为shell,请将其放入
~/.bash\u别名文件中:

function ack_discard_perm_errs()
{
    \ack --color $* 2>&1 | grep -v "Permission denied"
}

alias ack='ack_discard_perm_errs $*'

这不是问题。这是任何工具都会遇到的文件权限问题,而不仅仅是ack.hmm。我将此添加到我的bash配置文件中(这是同一件事吗?我对bash不太了解),但它没有做任何事情。我应该澄清一下,如果我从命令行执行此操作,我不会得到任何错误,只有在我使用macvim的Ack插件时。