Следующая острота в оболочке помогла бы.
foreach i (`find Source_Directory -type f --max-depth 1|tail -100`); do; {mv $i Target_Directory}; done
Как gelraen указанное значение по умолчанию ssh_config
не будет поддерживать регулярные выражения, но можно попробовать что-то другое как:
Посмотрите PATTERNS
раздел в man ssh_config
.
Длинный ответ: Нет, Вы не можете, если Вы не исправляете Ваш ssh
поддерживать это.
man ssh_config
. linux.die.net/man/5/ssh_config
– gelraen
23.01.2013, 15:56
Вы можете использовать полные регулярные выражения в своем ssh_config
.
Соответствующая документация IMO очень трудна для чтения и понимания. Я понимаю это только потому, что у меня 13+ лет опыта работы с Linux и 8+ лет использования ssh
. Итак, вот мое резюме документации:
man ssh_config
описывает функцию под названиемMatch
exec
, которая позволяет вам использовать произвольную команду оболочки для определения совпадения TOKENS
В моем случае я использовал в своем~/.ssh/config
:
Match exec "echo %h | grep -q 'NAME[0-9]\+$'"
User USER
IdentityFile /path/to/identity/file
Hostname %h.fully.qualified.domain.name
Тестирование должно проводиться с чем-то вроде этого. И для этого тестирования вы звоните ssh -vvv HOSTNAME
. Который точно покажет, что происходит, и правильно ли реализован ваш новый Match
.
Расширение ответа от Тревора:
Также возможны более сложные хосты, например сопоставление foo123.123
и foo10.10
в одном правиле БЕЗ DNS-записей для используемых имен хостов:
Match exec "echo %h | grep -q 'foo[0-9]\+.[0-9]\+$'"
Port 1234 # just to show it can be paired with non-default ports too,
# see %p in man ssh_config
ProxyCommand /usr/bin/nc 10.10.$(echo %h | sed -e 's/foo//') %p
Использование ProxyCommand для манипулирования содержимым %h с помощью оболочки и подключение к нужному порту через netcat. Таким образом, вы можете создавать пресеты для категории хостов, не создавая отдельные записи.