scp -r… mas deixa de fora (exclui) um subdiretório especificado

29

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?

    
por russian_spy 05.08.2009 / 01:03

4 respostas

28

Eu não acho que você pode, mas você poderia usar o rsync? Algo parecido com isto:

rsync -a --exclude=a/c myserver:/a .
    
por 05.08.2009 / 01:09
5

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 .
    
por 06.08.2010 / 17:16
1

Você pode usar a globalização estendida como no exemplo abaixo:

#Enable extglob
shopt -s extglob

cp -rv !(./excludeme/*.jpg) /var/destination
    
por 11.03.2016 / 17:03
0

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.

    
por 15.03.2010 / 20:43

Tags