当我找到一些东西时,我经常得到这样的输出:
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不会这样做。
答案 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 $*'