Вот структура каталогов:
/a/
/a/b/
/a/c/
Я хочу скопировать все, КРОМЕ для подкаталога /a /c /.
scp -rp myserver:/a . # this will copy everything
Q: Как мне указать каталог, который нужно пропустить в команде scp?
Вот структура каталогов:
/a/
/a/b/
/a/c/
Я хочу скопировать все, КРОМЕ для подкаталога /a /c /.
scp -rp myserver:/a . # this will copy everything
Q: Как мне указать каталог, который нужно пропустить в команде scp?
Я не думаю, что вы можете, но вы могли бы использовать rsync? Что-то вроде этого:
rsync -a --exclude=a/c myserver:/a .
Я думаю, что это может быть правильным способом сделать это, так что вы все еще используете 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 .
Вы можете использовать расширенную глобализацию, как в примере ниже:
#Enable extglob
shopt -s extglob
cp -rv !(./excludeme/*.jpg) /var/destination
Не идеальный способ сделать это, но установить подкаталог, который вы хотите исключить, только для чтения. chmod -R 444 /a/c
должен сделать свое дело. Вы получите сообщение об ошибке "Отказано в доступе" при попытке записи в этот каталог.