Hedef klasörün üzerine yazmak için scp komutunu nasıl alabilirim


41

Bazı dosyaları uzak bir bilgisayara kopyalamak için scp komutunu kullanıyorum, scp ile yaptığınız gibi :)

Dosyalar için bir scp kopyasının varsayılan davranışının, varolan dosyaların üzerine yazmak olduğunu unutmayın. Şimdi bir klasörü kopyalamak istiyorum, böylece temelde aynı şeyi yapıyorum:

scp -r <source_path> user@myOtherPc:<dest_path>

<> Bölümündeki parçalar klasör yollarım. Ancak bunu çalıştırdığımda "dosya var" mesajını alıyorum. Bunun bir yolu var mı? bir çeşit güç üzerine yazma?

Teşekkürler, yem


2
Bazı yol örnekleri verebilir misiniz? Bunu sistemimde çoğaltmak için performans göstermiyorum. Ayrıca, dosya izinlerini kontrol ettiniz mi?
Levans

Ayrıntılı mod kullanıyorsanız, size herhangi bir yararlı bilgi veriyor mu? -v. Ayrıca, hedef tarafında mutlak veya göreceli yol mu kullanıyorsunuz? Eğer hedef klasör zaten mevcutsa, üzerine yazmak yerine hedef klasörün içinde kaynak yolunu yaratacağını testdir/testdir
düşünüyorum

2
Bunu alman çok garip. Güya scp noclobber yok ...
beroe 24:13

1
@Lankala İzinleri kontrol etmedim, yeni baktım ve haklı olabileceğinizi düşünüyorum. Hedef alandaki her şeyi sildim ve yeniden "scp" komutunu kullanarak ve "root" kullanıcısını kullanarak yeniden başlattım ve dosyaları / klasörü birden çok kez kopyalayabildim :) ...% 100 emin değilim ne izin sorunum vardı, ama şimdi konuyla ilgili bir "sapa" sahibim, muhtemelen
çözebilirim

1
@beroe Evet, bu da düşündüğüm şeydi ... beni şaşırtmıştı, ama sanırım burada izinlerle bir çeşit kullanıcı hatası yaptım, henüz linux uzmanı değilim :( Ancak ayrıntılı bir şekilde deneyeceğim Bir dahaki sefere daha fazla bilgi almak için böyle bir sorun var, teşekkürler.Ayrıca, bazen "klasör içindeki klasörün" olduğunu da farkettim ... ama bu başka bir konudur: o
code_fodder

Yanıtlar:


27

Daha önce de söylediğim gibi, scp mutlulukla zaten mevcut olan herhangi bir dosyanın üzerine yazar.

"Dosya var" sorunu, klasörleri ve dosyaları aynı hedefe yazarken başka bir işlem (eşzamanlı bir scp işlemi veya başka bir şey gibi) olduğunda ortaya çıkabilir. Bunun yerine rsync kullanmayı düşünün.


1
Sadece şunu ekleyeceğim: ... o dosyaya yazma hakkınız olduğu sürece ...
SDsolar

ancak klasörler için klasörü birleştiriyor mu, değiştiriyor mu?
Dr_Hope

5

Levans gibi, bunu kopyalayamadım, ancak ssh yerine rsync kullanmayı düşündünüz mü? Çok sayıda dosyayı kopyalıyorsanız, rsync, scp'den daha iyi bir seçenek olabilir. Çevrimiçi olarak, aşağıdakiler gibi iyi rehberler var:

http://troy.jdmz.net/rsync/index.html https://calomel.org/rsync_tips.html

Bu ilk bağlantı cron üzerinden otomatik yedeklemeler ile ilgilidir, bu nedenle bazı talimatlar (parola olmadan bir ssh anahtarı oluşturmak gibi) sizinle ilgili olmayabilir.


İlginçtir, rsync'i bu şekilde kullanabileceğinizi bilmiyordum ... man sayfasına bir göz attığımda, <source_path> ve <user @ host ile scp yapmak için benzer bir şekilde kullanabilirsiniz. dest_path> parametreler.
Hedefimde olanın

Evet, oynamaya değer olabilir çünkü değiştirilmişse dosyanın üzerine kopyalamalıdır (ya da değiştirilmiş olan dosyanın bir kısmını kontrol etmeliyim ve biraz fazla yorgunum.) şimdi).
Ben

haha .... kontrol
etmekten

Güzel, göz kapaklarımın açılmasını sağlamak için kibrit çöplerine bakmayı bırakabilirim. ;)
Ben

1
Bu işe yarayabilir, ancak biraz uçmak için balyoz kullanmak gibi. ;-)
SDsolar

3

Hedef dizin zaten aktarmaya çalıştığınız kaynak dizinle aynı ada sahip bir dosya içeriyorsa, bu hata iletisini alırsınız. Aynı dizindeki bir dizinle aynı isimde bir dosyaya sahip olamazsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.