scp - pula um arquivo durante a execução

7

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

    
por Chen Kinnrot 13.03.2011 / 09:48

3 respostas

7

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

rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/
    
por 13.03.2011 / 10:35
0

Não, não com -r ou qualquer outra sintaxe que execute várias transferências de arquivos em um comando scp .

Dito isso, scp também segue o paradigma do UNIX: programas de gravação que fornecem funcionalidades simples e precisas que podem ser encadeadas de maneiras interessantes. Isso significa que seria possível escrever um loop que interativamente realize invocações individuais do comando, um por arquivo. Você seria capaz de sair dos 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 de executar esse loop dentro de um shell interativo deve ser enfatizada. A quebra de um shell não interativo encerraria todo o trabalho.

    
por 13.03.2015 / 00:06
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 lidar com arquivos com espaços neles.

    
por 10.01.2017 / 11:08

Tags