Как упоминалось в комментариях и другом ответе, нет конкретного способа отправки нетегированных пакетов, принадлежащих определенной VLAN, потому что немаркированные пакеты не могут описать, какой VLAN они принадлежат из-за отсутствия тега. Как также упоминалось, родительский интерфейс (здесь eth1) будет отправлять непомеченные пакеты.
Однако это не означает, что немаркированные пакеты, отправленные из вашего Linux-сервера, не могут принадлежать определенной VLAN в вашей сети. Коммутатор должен назначить немаркированные пакеты, поступающие на данный порт, в конкретную VLAN. Обычно коммутаторы (которые поддерживают VLAN) по умолчанию назначают немаркированные пакеты «VLAN по умолчанию (1)». Однако, изменив конфигурацию на коммутаторе, вы можете дать ему указание помещать немаркированные пакеты, полученные в VLAN 10, и направлять их туда, где еще назначена VLAN 10.
Если для VLAN 10 задано тегирование на другом порту, те же самые пакеты будут выходить с тегами, если это место назначения пакета, и немаркированы на другом порту, который настроен как нетегированный для VLAN 10
{{1 }}Если вы хотите удалить любой каталог с именем .git
или node_modules
из дерева поиска, вы должны использовать
-type d \( -name.git -o -name node_modules \) -prune
Это приведет к тому, что find
даже не будет входить в эти каталоги (-type d
не является строго необходимым, но я буду использовать его здесь для симметрии с -type f
; см. ниже ).
Затем вы должны добавить другие условия,
-type d \( -name.git -o -name node_modules \) -prune -o \
-type f \( -name '*.yaml' -o -name '*.html' \) -print
Заканчивается
find. \
-type d \( -name.git -o -name node_modules \) -prune -o \
-type f \( -name '*.yaml' -o -name '*.html' \) -print
Любое действие, которое вы хотите выполнить с путями, прошедшее все тесты, должно выполняться вместо -print
.
Обратите внимание, что логическая операция по умолчанию между двумя предикатами —-a
(AND ).
man find
Отличное место для поиска дополнительной информации о find.
Это должно сработать.
find. \
-type f \
'(' -name '*.yaml' -or -name '*.html' ')' -and \
-not '(' -path './.git/*' -or -path '*/node_modules/*' ')'
Обратите внимание на использование круглых скобок и необходимость заключать их в кавычки из-за того, что они встроены -в синтаксис bash (и большинства других оболочек ).