??
там для обеспечения значения для nullable типа, когда значение является пустым. Так, если formsAuth будет пустым, он возвратит новый FormsAuthenticationWrapper ().
Я бы, вероятно, порекомендовал использовать что-то вроде rsync
для этого из-за его флагов include
и exclude
, например: -
rsync -rav -e ssh --include '*/' --include='*.class' --exclude='*' \
server:/usr/some/unknown/number/of/sub/folders/ \
/usr/project/backup/some/unknown/number/of/sub/folders/
Некоторые другие полезные флаги:
-r
для рекурсивного -a
для архива (в основном все файлы) -v
для подробного вывода -e
, чтобы указать ssh вместо значения по умолчанию (которое фактически должно быть ssh) В scp нет функции фильтрации файлов. Для таких «продвинутых» вещей я рекомендую использовать rsync:
rsync -av --exclude '*.svn' user@server:/my/dir .
(эта строка копирует rsync из удаленной папки в текущую)
Последние версии rsync-туннеля через ssh-соединение по умолчанию автоматически.
Скопируйте исходную папку в somedir
:
cp -r srcdir
somedir
Удалите все ненужные файлы:
find somedir -name '.svn' -exec rm -rf {} \ +
запустите scp из somedir
Поскольку вы можете scp
, вы должны быть в порядке с ssh
,
либо напишите следующий сценарий, либо войдите и выполните ...
# After reaching the server of interest
cd /usr/some/unknown/number/of/sub/folders
tar cfj pack.tar.bz2 $(find . -type f -name *.class)
вернуться (выйти) на локальный сервер и scp
,
# from the local machine
cd /usr/project/backup/some/unknown/number/of/sub/folders
scp you@server:/usr/some/unknown/number/of/sub/folders/pack.tar.bz2 .
tar xfj pack.tar.bz2
Если вы найдете $ (найти ...)
слишком длинный для изменения вашего tar на,
find . -type f -name *.class | xargs tar cfj pack.tar.bz2
Наконец, поскольку вы храните его в / usr / project / backup /
,
зачем заморачиваться добычей? Просто сохраните tar.bz2
, возможно, с датой + отметкой времени.