Ack: разрешения запрещены выходы вместе с результатами - PullRequest
1 голос
/ 02 ноября 2011

когда я что-то подтверждаю, я часто получаю вывод, подобный этому:

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

Что это такое и как я могу это исправить / убрать?

EDIT: это происходит только в выводе MacVim, когда я использую плагин Ack. Обычный Ack не делает этого.

1 Ответ

3 голосов
/ 02 ноября 2011

Каталог /tmp будет использоваться другими пользователями, кроме вас, и у вас не будет разрешения на чтение этих файлов или каталогов (даже если вы используете компьютер только одним, различные процессы root)будет по-прежнему использовать /tmp dir).Кажется, не существует опции ack, чтобы не жаловаться на проблемы с разрешениями, поэтому вам просто нужно отменить эти строки.Самый простой способ - просто выбросить все ack отпечатков в stderr, например, так:

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

Однако это отбросит все ack ошибок.Чтобы просто отбросить ошибки «Отказано в доступе», требуется немного больше работы.Предполагая, что вы используете bash в качестве оболочки, поместите это в файл ~/.bash_aliases:

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

alias ack='ack_discard_perm_errs $*'
...