scp - pula um arquivo enquanto executa

8

Estou executando o scp e copiando uma pasta do servidor remoto, estou executando com -rl, para ver os arquivos sendo copiados, é possível pular o arquivo atual de alguma forma?

Chen Kinnrot
fonte

Respostas:

11

Não, você não pode. Mas você pode parar scpe usar rsync. Ele copiará apenas as diferenças restantes da cópia parcial e você poderá excluir todos os arquivos ou diretórios que não deseja transferir.

rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/
forcefsck
fonte
2
Isso é útil, sim, mas infelizmente não responde à pergunta que foi feita.
Emmaly Wilson
8
Responde perfeitamente à pergunta; a pergunta pergunta se é possível fazer algo e essa resposta responde "não". Em seguida, fornece uma alternativa útil no tópico.
Christopher Shroba
1

Não, não com -rou qualquer outra sintaxe que execute várias transferências de arquivos em um scpcomando.

Dito isto, scptambém segue o paradigma UNIX: escreva programas que forneçam funcionalidades simples e precisas que possam ser encadeadas de maneiras interessantes. Isso significa que seria possível escrever um loop que interativamente executa invocações individuais do comando, uma por arquivo. Você seria capaz de quebrar os comandos individuais enquanto eles estão sendo executados. (Ctrl-C)

O código para isso está sendo deixado como um exercício para o leitor, mas a necessidade desse loop ser executado em um shell interativo deve ser enfatizada. A quebra de um shell não interativo encerraria o trabalho inteiro.

Andrew B
fonte
0

Sim você pode!

Vamos listar o diretório remoto e copiar cada arquivo separadamente. Em seguida, pressione ctrl-c para cada arquivo que você não deseja copiar:

OLD_IFS="$IFS"
IFS=$'\n'
for file in `ssh user@host ls /remote/directory/`
  do echo user@host:/remote/directory/$file /local/directory/
done;
IFS="$OLD_IFS"

OLD_IFS está aqui para manipular arquivos com espaços neles.

Sylvain
fonte
Onde você coloca isso? Como você chama isso?
StatsSorceress