Интерфейс моста - добавляет маршрут по умолчанию

find -L . \
  \( -type d \
    \( -path "*/ignore" -o -path "*/indeed" -o \
      \( -path "*/subdir/*" ! -path "*/subdir/save" \
      \) \
    \) \
  \) \
  -prune -o -print

Если Вы хотите дополнительный фильтр (как -name "*.ext") необходимо исправить это прежде -print. Последняя часть затем похожа на это

  -prune -o \( -name "*.ext" \) -print

Обратите внимание, что я изменил имена для более легкого writeability и удобочитаемости. Имена, запускающиеся с i должны быть проигнорированы. Имена, запускающиеся с s должны быть показаны. Имена, заканчивающиеся в file файлы.

Мое дерево похоже на это:

$ find -printf "%y %p\n"
d .
d ./base
d ./base/subdir
d ./base/subdir/inform
f ./base/subdir/inform/imagefile
d ./base/subdir/isolate
f ./base/subdir/isolate/individualfile
f ./base/subdir/whatwhatinthefile
d ./base/subdir/save
f ./base/subdir/save/soundfile
f ./base/superfile
d ./base/indeed
f ./base/indeed/itemfile
d ./base/show
f ./base/show/startfile
d ./base/ignore
f ./base/ignore/importantfile

Вывод вышеупомянутой команды:

.
./base
./base/subdir
./base/subdir/whatwhatinthefile
./base/subdir/save
./base/subdir/save/soundfile
./base/superfile
./base/show
./base/show/startfile

Отметьте это whatwhatinthefile в base/subdir. Если Вы не хотите файлы в base/subdir затем необходимо исключить их явно. Я попробовал, но командная строка стала слишком ужасной.

В зависимости от Вашего варианта использования могло бы быть легче определить функцию оболочки как это:

contrivedfind() {
  find -L . \
    \( -type d \
      \( -path "*/ignore" -o -path "*/indeed" -o -path "*/subdir" \
      \) \
    \) \
    -prune -o -print
  find -L ./base/subdir/save
}

Вывод теперь:

.
./base
./base/superfile
./base/show
./base/show/startfile
./base/subdir/save
./base/subdir/save/soundfile

Единственной другой вещью, отличающейся до теперь, являются пропавшие без вести ./base/subdir запись. Но я думаю, что это не имеет значения в Вашем случае, потому что Вы хотите отфильтровать для файлов так или иначе.

Как, прежде чем необходимо будет поместить любой дополнительный фильтр перед -print в первом find и на этот раз также в конце второго find.

5
13.03.2018, 23:39
1 ответ

Шлюз по умолчанию обычно обновляется DHCP.

Однако в вашем /etc/network/interfacesвы утверждаете, что для br0инет является статическим. Вы явно указываете IP-адрес, сетевую маску и шлюз. Таким образом, для этого интерфейса не выполняется запрос DHCP.

Если вы хотите обновить шлюз по умолчанию, укажите как:

auto br0
    iface br0 inet dhcp
    bridge_ports eth0
2
27.01.2020, 20:42

Теги

Похожие вопросы