Угадайте, что это то, что вы хотите (заимствовал какой-то код из @ Mr.Spuratic)
Примечание. Это не мешает вам нажатию вкладку, используя полный путь (например, VIM / Directory / Contital / Lots / файлы < Tab>
function cd() {
builtin cd "$@"
local NOCOMPLETION=( "/" "/lib" )
local IS_NOCOMPLETION=0
for dir in "${NOCOMPLETION[@]}"
do
echo $dir
if [[ $(pwd) == "$dir" ]]
then
echo "disable completion"
bind "set disable-completion on"
IS_NOCOMPLETION=1
return
fi
done
if [[ $IS_NOCOMPLETION -eq 0 ]]
then
echo "enable completion"
bind "set disable-completion off"
fi
}
Обоснование , приведенное в спецификации POSIX:
Принятый синтаксис
«-exec... {} +»
был результатом интерпретации IEEE PASC 1003.2 # 210. Следует отметить, что это несовместимое изменение стандарта ISO/IEC 9899:1999. Например, следующая команда печатает все файлы с именем'-'
после их имени, если они являются обычными файлами, и'+'
в противном случае:find/-type f -exec echo {} - ';' -o -exec echo {} + ';'
Изменение делает использование недействительным. Несмотря на то, что предыдущий стандарт утверждал, что это использование будет работать, на практике многие не поддерживали его, и разработчики стандарта сочли, что лучше сейчас заявить, что это не допустимо.
Интерпретация PASC 1003,2 # 210 более подробно описывает историю -exec... {} +
. Он существовал на нескольких Unix-системах до того, как был принят POSIX; отчет о дефекте отслеживает его до SVR4 (где он был в значительной степени недокументирован). Отчет о дефектах обосновывает несовместимое изменение как незначительное воздействие на практике:
Обратите внимание, что «+» рассматривается как специальное, только если оно немедленно следует «{}». Это сводит к минимуму вероятность возникновения проблем с существующие использования «+» в качестве аргумента с «-exec».
Хотя добавление поддержки для -exec... {} +
приведет к разрыву некоторых соответствующих приложений, таких как приведенный выше пример, их меньше, чем если бы было разрешено -exec... {}... +
.
Возможно, другой причиной ограничения {}
в качестве последнего аргумента является простота реализации. Если бы {}
было разрешено в любом месте аргумента, перечислять -exec
, то программе find
пришлось бы создавать командную строку, копируя статические аргументы, затем переменную часть, а затем другую статическую часть. Сложность минимальна, но реализаторам нравится резать углы. Поддержка нескольких замещаемых экземпляров {}
(если будет работать -exec {} foo +
, можно логически ожидать, что также будет значительно сложнее -exec {} foo {} +
).
Избавиться от и
. Это заставляет его уходить на второй план, Upstart думает, что процесс умер, а затем порождает новый. Просто получите exec-линию без амперсанда.
Я предполагаю, что на локальном компьютере запущен rsyslog и что он пересылает журналы на удаленный сервер журналов.
Судя по документации rsyslog, можно определить модуль ввода для выполнения желаемого. Я видел подробности об этом здесь:
http://www.rsyslog.com/doc/master/configuration/modules/imfile.html
Он даже приводит несколько мизерных примеров.