В дополнение к 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 {} +
Чтобы завершить блок сопоставления с 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 отказался запускаться)
Кажется, что нет никакого способа явно закончить блоки Соответствия. Из sshd_config страницы руководства:
Если все критерии на строке Соответствия удовлетворены, ключевые слова на следующих строках переопределяют установленных в глобальном разделе файла конфигурации, или до другой строки Соответствия или до конца файла.
Так Match
блоки должны быть в конце sshd_config
файл.
Match
на нем, который эффективно соответствует всему и поэтому совпадает с 'окончанием' блока. Это все еще не позволит Вам использовать директивы, которые не позволяются в блоках Соответствия, тем не менее, таким образом, это не поможет с Вашим конкретным сценарием.
– Nathan Bouscal
28.04.2013, 05:28