Onde os arquivos rsynced para um host vão?

7

Eu acidentalmente rsyncedi .thunderbird para user@host em vez de user@host:/home/user .

Onde está .thunderbird agora? Existe uma boa maneira de procurar a pasta?

    
por Ole 30.05.2017 / 09:43

1 resposta

13

Está no diretório em que você executou o comando:

$ touch foo
$ ls -l foo bar@baz
ls: cannot access 'bar@baz': No such file or directory
-rw-rw-r-- 1 muru muru 0 May 30 16:53 foo
$ rsync -aP foo bar@baz
sending incremental file list
foo
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)
$ ls -l foo bar
-rw-rw-r-- 1 muru muru 0 May 30 16:53 bar@baz
-rw-rw-r-- 1 muru muru 0 May 30 16:53 foo

Se você fez rsync .thunderbird user@host: e não rsync .thunderbird user@host (observe o : ), o diretório foi copiado para o diretório inicial de user on host (então /home/user normalmente seria redundante em% código%). Sem o user@host:/home/user , o segundo argumento é apenas o caminho para um diretório de destino no sistema local.

O mesmo se aplica a : .

Observe que scp não exclui os arquivos de origem, a menos que você os informe. Portanto, rsync ainda está onde estava e uma nova cópia é feita para onde foi copiada.

Observe também que .thunderbird tem um comportamento diferente com base no fato de o diretório de origem ter um rsync à direita. Estes dois são diferentes:

rsync -aP .thunderbird somewhere
rsync -aP .thunderbird/ somewhere

No primeiro caso, o diretório / é copiado .thunderbird , mas no segundo caso, os conteúdos de somewhere são copiados (assim você não verá .thunderbird , mas se houver um somewhere/.thunderbird , você verá .thunderbird/foo em vez de somewhere/foo ).

    
por muru 30.05.2017 / 09:53