Eu não acho que você pode, mas você poderia usar o rsync? Algo parecido com isto:
rsync -a --exclude=a/c myserver:/a .
Aqui está a estrutura do diretório:
/a/
/a/b/
/a/c/
Eu quero copiar tudo, EXCETO para o subdiretório / a / c /.
scp -rp myserver:/a . # this will copy everything
P: Como eu especificaria um diretório para deixar de fora no comando scp?
Eu não acho que você pode, mas você poderia usar o rsync? Algo parecido com isto:
rsync -a --exclude=a/c myserver:/a .
Eu acho que esta pode ser a maneira correta de fazer isso, então você ainda está usando o SSH, eu não encontrei uma maneira de fazer isso com o scp - mas usar o rsync sobre o ssh pode resolvê-lo.
rsync -e 'ssh -ax' -av --exclude /a/c myserver:/a .
Se você usar a opção -n, criará uma execução seca do processo:
rsync -e 'ssh -ax' -av --exclude /a/c -n myserver:/a .
Você pode usar a globalização estendida como no exemplo abaixo:
#Enable extglob
shopt -s extglob
cp -rv !(./excludeme/*.jpg) /var/destination
Não é a maneira perfeita de fazer isso, mas defina o subdiretório que você deseja excluir como somente leitura. chmod -R 444 /a/c
deve fazer o truque. Você receberá um erro "permissão negada" quando tentar gravar sobre esse diretório.
Tags scp