OpenSSH: Как закончить блок соответствия

В дополнение к eboix's find команда (который, поскольку это стоит повреждения на пробеле, я помещу более безопасный путь или два в конце), можно использовать bash extglob функция:

# turn extglob on
shopt -s extglob 
# move everything but the files matching the pattern
mv dir1/!(*.c) -t dir2
# If you want to exclude more patterns, add a pipe between them:
mv dir1/!(*.c|*.txt) -t dir2

Посмотрите bash страница справочника для больше Вас может сделать с extglob. Обратите внимание, что это не рекурсивно и так только переместит файлы в dir1 непосредственно, не подкаталоги. find метод является рекурсивным.


Более безопасный find команды:

find dir1 ! -name '*.c' -print0 | xargs -0 mv -t dir2
find dir1 ! -name '*.c' -exec mv -t dir2 {} +

Для большего количества шаблонов просто добавьте больше ! -name операторы:

find dir1 ! -name '*.c' ! -name '*.txt' -print0 | xargs -0 mv -t dir2
find dir1 ! -name '*.c' ! -name '*.txt' -exec mv -t dir2 {} +
49
08.03.2013, 20:15
2 ответа

Чтобы завершить блок сопоставления с openssh 6.5p1 или более поздней версии, используйте строку: Сопоставить все

Вот фрагмент кода, взято из моего файла / etc / ssh / sshd_config :

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Match host 192.168.1.12
    PasswordAuthentication yes
Match all

X11Forwarding yes
X11DisplayOffset 10

Строка с единственным Match работать не будет. (У меня не сработало, sshd отказался запускаться)

31
27.01.2020, 19:34

Кажется, что нет никакого способа явно закончить блоки Соответствия. Из sshd_config страницы руководства:

Если все критерии на строке Соответствия удовлетворены, ключевые слова на следующих строках переопределяют установленных в глобальном разделе файла конфигурации, или до другой строки Соответствия или до конца файла.

Так Match блоки должны быть в конце sshd_config файл.

43
27.01.2020, 19:34
  • 1
    Другая опция состоит в том, чтобы иметь строку с только Match на нем, который эффективно соответствует всему и поэтому совпадает с 'окончанием' блока. Это все еще не позволит Вам использовать директивы, которые не позволяются в блоках Соответствия, тем не менее, таким образом, это не поможет с Вашим конкретным сценарием. –  Nathan Bouscal 28.04.2013, 05:28
  • 2
    "Блоки соответствия должен быть в конце sshd_config файла". Очень полезный мне и не объясненный достаточно ясно (для меня) в странице справочника, и т.д. Спасибо. –  MountainX-for-Monica 30.04.2013, 01:26

Теги

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