Ack:权限被拒绝输出以及结果

时间:2011-11-01 22:37:29

标签: 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: 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输出中。 Normal Ack不会这样做。

1 个答案:

答案 0 :(得分:3)

/tmp目录将由除您之外的用户使用,您将无权读取这些文件或目录(即使您是唯一使用该计算机的人,也可能是root目录。 1}}进程仍将使用/tmp目录。似乎没有ack选项不抱怨权限问题,因此您只需要丢弃这些行。一种简单的方法就是将所有ack打印件抛弃到stderr,如下所示:

alias ack='ack $* 2> /dev/null'

但是,这会丢弃所有 ack错误。要放弃“权限被拒绝”错误需要更多的工作。假设您使用bash作为shell,请将其放入~/.bash_aliases文件中:

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

alias ack='ack_discard_perm_errs $*'