it-swarm.asia

Scp kopyasını gizli dosyalar nasıl yapılır?

Genellikle web ile ilgili dosyalar olmak üzere SCP'yi dosyaları kopyalamak için kullanıyorum. Sorun, bunu her yaptığımda gizli dosyaları (örn., .Htaccess) kopyalama komutumu alamıyorum.

Genellikle bunu çağırıyorum:

scp -rp src/ [email protected]:dest/

Bu gizli dosyaları kopyalamaz. Bunu tekrar çağırmak istemiyorum (scp -rp src/.* ... - ve bu garip . ve .. zaten etkileri.

scp man sayfasında "gizli dosyaları dahil et" hakkında hiçbir şey görmedim.

Bunu nasıl başarabilirim?

64
rascher

Bu kesinlikle gizli dosyalarla eşleşmelidir. Kaynağın sonundaki /, "bu dizinin altındaki her dosya" der. Bununla birlikte, test ve araştırmalar sizi destekliyor. Bu aptalca bir davranış.

" answer " kaynağın sonuna nokta eklemek içindir:

scp -rp src/. [email protected]:dest/

Gerçek yanıtı rsync kullanmaktır.

68
Matt Simmons

Rsync'i deneyebilirsiniz. Bu iş için daha uygun:

rsync -av src/kullanıcı @ sunucu: dest /

(Ve manuel sayfası okunmaya değer.)

25
cstamas

Kaynak dizinin üstüne eğik çizgi koymayın. Kodunuz şöyle görünecektir:

scp -rp src [email protected]:dest/

Bu, uzak makinedeki 'dest' altında, tüm gizli dosyaların dahil edildiği bir 'src' dizini oluşturur. Muhtemelen tam olarak istediğiniz şey değildir, ancak gizli dosyaları src'ye kopyalar.

9
kbyrd

Aşağıdakiler sorunu çözecektir, bu sürekli entegrasyon ortamımızda tamamen test edilmiştir

scp -rp src/. [email protected]:dest/
example scp -rp /usr/src/code/. [email protected]:/usr/dest/code/

Umarım yardımcı olur

3
stevensagaar

Yalnızca gizli dosyaları kopyalamak için, Bu komutu kullanın

scp -rp /path_to_copy_hidden/.[!.]* [email protected]:/path_to_paste/

Gerçek oyun, /.[!.]* İle başlayan dosyalara atıfta bulunan . Etiketidir (gizli)

1

scp düzenli ifadeleri desteklediğinden, bu sizin için hile yapacaktır:

scp -rp src/(*|.*) [email protected]:dest/

0
donmutti

Dağıtılmış revizyon kontrolü gizli dosyaları işler

CVE-2018-20685 güvenlik açığı nedeniyle /. numarası artık kullanılamazscp ile. Ancak, git veya Hg Mecurial gibi dağıtılmış revizyon kontrolü, diğer dosyalar gibi gizli dosyaları işleyecektir. İşte benim favorim için komutlar - Hg Mercurial :

server:$ Sudo apt install Mercurial
client:$ Sudo apt install Mercurial
client:$ hg init src
client:$ cd src/
client:$ hg addr
client:$ hg com -m "first commit"
client:$ cd
client:$ hg clone src ssh://[email protected]/dest/

Sonraki değişikliklerin client:$ hg com -m "commit message" ve ardından client:$ hg Push komutu. Değişiklikleri buradan itme hakkında daha fazla bilgi edinin Hg Mercurial cheat sheet .

0
Serge Stroobandt

Yukarıdaki scp çözümlerinden hiçbiri benim için çalışmadı. Ancak, aşağıdaki cygwin üzerinde çalıştı buldum: scp -r dizin/* Host: dizin '*' tüm görünür dosyaları eşleşti ve görünmez atladı.

0
Ray Cote

Uzak makinede şifre girişi devre dışı bırakılmışsa ve giriş yapmanın tek yolu ortak anahtar ile yapılmışsa, bunu kullanabilirsiniz:

$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress [email protected]:/remote/source/directory/ /local/destination/directory/

Gizli dosyaları da kopyalar.

Ayrıca, "user1" öğesinin bu dosyaları okumak için izinlere sahip olması gerektiğini unutmayın; örneğin, diğer kullanıcıların ssh klasörlerini bu yöntemle kopyalayamazsınız.

0
Gergely Lukacsy