Как отфильтровать файлы при использовании scp для копирования dir рекурсивно?

?? там для обеспечения значения для nullable типа, когда значение является пустым. Так, если formsAuth будет пустым, он возвратит новый FormsAuthenticationWrapper ().

94
задан derrdji 4 August 2009 в 16:15
поделиться

4 ответа

Я бы, вероятно, порекомендовал использовать что-то вроде 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)
144
ответ дан 24 November 2019 в 06:01
поделиться

В scp нет функции фильтрации файлов. Для таких «продвинутых» вещей я рекомендую использовать rsync:

rsync -av --exclude '*.svn' user@server:/my/dir .

(эта строка копирует rsync из удаленной папки в текущую)

Последние версии rsync-туннеля через ssh-соединение по умолчанию автоматически.

35
ответ дан 24 November 2019 в 06:01
поделиться
  1. Скопируйте исходную папку в somedir :

    cp -r srcdir somedir

  2. Удалите все ненужные файлы:

    find somedir -name '.svn' -exec rm -rf {} \ +

  3. запустите scp из somedir

-1
ответ дан 24 November 2019 в 06:01
поделиться

Поскольку вы можете 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 , возможно, с датой + отметкой времени.

8
ответ дан 24 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

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