Scp kullanarak tüm dosyalar bir dizinden uzaktaki bir dizine nasıl kopyalanır?


68

Amacım kopya sadece tüm dosyaları gelen ~ / local_dir için user@host.com / var / www / html / target_dir kullanarak scp ve local_dir kategoriyi local_dir oluşturmayın.

/var/www/html/target_dir/files..

Ama değil

/var/www/html/target_dir/local_dir/files.. -r parametresini kullandığınızda


1
scp * user@host.com:/var/www/html/target_dirNe istersen yapmaz mı ? Öyleyse, lütfen ne yapmaya çalıştığınızı ve şimdiye kadar denediğiniz şeyleri daha ayrıntılı olarak düzenleyin .
Michael Homer

Ekleniyor /. artık iş değil. Daha fazla burada
Tsulatsi Tamim

Yanıtlar:


91

scp, -r argümanına sahiptir. Yani, kullanmayı deneyin:

$ scp -r ~/local_dir user@host.com:/var/www/html/target_dir

-R argümanı tıpkı cp'deki -r argümanı gibi çalışır, tüm klasörünüzü ve içindeki tüm dosyaları ve alt dizinleri transfer eder.


5
Komutunuz local_dir/ var / www / html / target_dir dizininde oluşturduğum dizinin amacı sadece dosyaları kopyalamak.
Edgaras Karka 30:15

Üzgünüm, yanlış anladım. Sonra sadece komutu tekrarlayın, ancak bu şekilde yapın: $ scp -r ~/local_dir user@host.com:/var/www/html/Sonra gerekirse yeni bir dizini yeniden adlandırın.
parazyd

8
Veya $ scp -r ~/local_dir/* user@host.com:/var/www/html/target_dirne olursa olsun teknenizi yüzer.
parazyd

Uzaktan kumandaya kopyalanırken bazı dizinler yerelden nasıl
çıkarılır

13
Joker karakteri *bir noktaya değiştirin, .dizinin kendisini kopyalamadan dizin içeriğini (nokta dosyaları dahil) kopyalarsınız. scp -pr ~/local_dir/. user@example.com:/path/to/target_dir
roaima

19

Amacınız tüm dosyaları aktarmak için ise joker hile yapar:local_dir*

$ scp ~/local_dir/* user@host.com:/var/www/html/target_dir

Bu -rseçenek "özyinelemeli" anlamına gelir, bu nedenle bir dizinin tamamını veya birkaç dizini aktarmaya çalışırken yazmalısınız.

Kimden man scp:

-r 
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.

Dolayısıyla local_dir, içinde alt dizinler varsa , son örnek yalnızca dosyaları aktaracaktır, ancak -rseçeneği ayarladıysanız, dosyaları ve dizinleri aktaracaktır.


1+ Çünkü doğru cevaba ulaşmak için kabul edilen cevabın içindeki yorumları okumanız gerekir, oysa bu sadece doğrudan açıklar.
André Christoffer Andersen,

17

Ekleme /.kaynak dizine dizine kendisinin yerine içeriğini aktarır. Joker karakter çözümünün aksine bu, gizli dosyaları da içerecektir.

$ scp -r ~/local_dir/. user@host.com:/var/www/html/target_dir

Bu çözüm için kredi roaima'ya gidiyor, ama sadece yorum olarak değil, gerçek bir cevap olarak gönderilmesi gerektiğini düşündüm.


0

Bu adımları takip et:

  1. Dizini local_dirtüm alt dizinleriyle kopyala :

    scp -r ~/local_dir user@host.com /var/www/html/target_dir
    
  2. Sadece içeriğini kopyalamak local_dirdeğil dizin local_dirkendisi:

    scp -r ~/local_dir/* user@host.com /var/www/html/target_dir
    
  3. Kullanmayın: scp -r ~/local_dir/. user@host.com /var/www/html/target_dirbir hata atar (yalnızca aşağıdaki hatayı sınayın ve aldı):

    scp: error: unexpected filename: .
    
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.