Korzystam z polecenia scp, aby skopiować niektóre pliki na zdalny komputer, podobnie jak w przypadku scp :)
Zauważam, że domyślnym zachowaniem kopii SCP dla plików jest zastąpienie istniejących plików. Teraz chcę skopiować folder, więc robię w zasadzie to samo:
scp -r <source_path> user@myOtherPc:<dest_path>
Gdzie części w <> to moje ścieżki folderów. Jednak gdy go uruchomię, pojawia się komunikat „plik istnieje”. Czy jest na to jakiś sposób? jakaś siła nadpisywania?
Dzięki, Fodder
-v
. Ponadto, czy używasz ścieżki bezwzględnej czy względnej po stronie docelowej? Myślę, że jeśli folder docelowy już istnieje, utworzy ścieżkę źródłową w folderze docelowym, a nie nadpisuje (testdir/testdir
)Odpowiedzi:
Jak powiedziano wcześniej, scp z radością zastępuje każdy plik, który jest już obecny.
Problem z „plikiem istnieje” może wystąpić tylko wtedy, gdy masz inny proces (np. Jednoczesny proces SCP lub coś innego) zapisujący foldery i pliki w tym samym miejscu docelowym. Zamiast tego rozważ użycie rsync.
źródło
Podobnie jak Levans, nie byłem w stanie powielić tego, ale czy zastanawiałeś się nad użyciem rsync zamiast ssh? Jeśli kopiujesz dużą liczbę plików, rsync może być lepszą opcją niż scp. Istnieje wiele dobrych przewodników po Internecie, takich jak te:
http://troy.jdmz.net/rsync/index.html https://calomel.org/rsync_tips.html
Ten pierwszy link zajmuje się automatycznymi kopiami zapasowymi za pośrednictwem crona, więc niektóre instrukcje (takie jak tworzenie klucza ssh bez hasła) mogą nie być dla ciebie odpowiednie.
źródło
Ten komunikat o błędzie zostanie wyświetlony, jeśli katalog docelowy zawiera już plik o tej samej nazwie co katalog źródłowy, który próbujesz przenieść. Nie możesz mieć pliku o tej samej nazwie co katalog w tym samym katalogu.
źródło