scp-r ... но оставить (исключить) указанный подкаталог

вот структура каталогов:

/a/
/a/b/
/a/c/

Я хочу скопировать все, кроме подкаталога /a/c/.

scp -rp myserver:/a .      # this will copy everything

Q: Как указать каталог, который следует оставить в команде scp ?

29
задан Cfinley
19.12.2022 22:07 Количество просмотров материала 3316
Распечатать страницу

4 ответа

Я не думаю, что вы можете, но вы можете использовать rsync? Что-то вроде этого:

rsync -a --exclude=a/c myserver:/a .
28
отвечен Paul Dixon 2022-12-21 05:55

Я думаю, что это может быть правильный способ сделать это, так что вы все еще используете SSH, я не нашел способ сделать это с scp - но с помощью rsync через ssh может решить эту проблему.

rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .

Если вы используете Ключ-n, то он создаст сухой запуск процесса:

 rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .
5
отвечен 2022-12-21 08:12

вы можете использовать расширенный глобус, как в примере ниже:

#Enable extglob
shopt -s extglob

cp -rv !(./excludeme/*.jpg) /var/destination
1
отвечен WackGet 2022-12-21 10:29

не идеальный способ сделать это, но установите подкаталог, который вы хотите исключить, только для чтения. chmod -R 444 /a/c должно сработать. Вы получите сообщение об ошибке "отказано в разрешении" при попытке записи в этот каталог.

0
отвечен sjobe 2022-12-21 12:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх