Назад | Перейти на главную страницу

Scp только определенную папку

Некоторый синтаксис командной строки, который я не знаю, как установить, иногда я новичок, извините, это очевидно

Допустим, у меня есть следующий путь для всех моих активов:

/var/www/site/system/images/{image_id}/{format}/{file}.{extension}

В папке {image_id} у меня есть несколько форматов (исходный, средний, большой и т. Д.).

Я хочу импортировать только папку / var / www / site / system / images / {image_id} / original и сохранить структуру локально

scp -r username@server:/var/www/site/system/images/*/original ~/Site/site/system/images

У этого есть все, но все файлы попадают в одну и ту же уникальную папку без какой-либо структуры.

Хочу сохранить структуру. Есть чем заняться?

Используйте rsync, поскольку scp имеет множество ограничений.

Для начала приведу пример:

rsync genja.org:/home/www/*/html/ /tmp/dest/html/ -avin 
host: genja.lan 
receiving incremental file list
created directory /tmp/dest/html
cd+++++++++ ./
>f+++++++++ tabs.html
cd+++++++++ borders/
cd+++++++++ borders/border-radius/
>f+++++++++ borders/border-radius/border-radius.htc
>f+++++++++ borders/border-radius/border-radius.html
cd+++++++++ borders/css-tricks.com/
(...)

Важные параметры -a и -v, если вы хотите увидеть, что происходит. Если вы добавите -in, тогда команда будет только делать вид, что она запущена, поэтому вы можете просмотреть, что и где будет скопировано.

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