pengembangan-web-mp.com

Bagaimana cara membuat scp menyalin file tersembunyi?

Saya sering menggunakan SCP untuk menyalin file - terutama file yang berhubungan dengan web. Masalahnya adalah bahwa setiap kali saya melakukan ini, saya tidak bisa mendapatkan perintah untuk menyalin file tersembunyi (mis., Htaccess).

Saya biasanya memohon ini:

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

Ini tidak menyalin file tersembunyi. Saya tidak ingin harus meminta ini lagi (dengan melakukan sesuatu seperti scp -rp src/.* ... - dan itu aneh . dan .. Lagipula implikasinya.

Saya tidak melihat apa pun di halaman manual scp tentang "sertakan file tersembunyi".

Bagaimana saya bisa mencapai ini?

64
rascher

Itu harus benar-benar cocok dengan file yang tersembunyi./Di akhir sumber mengatakan "setiap file di bawah direktori ini". Namun demikian, pengujian dan penelitian memberi Anda dukungan. Ini perilaku bodoh.

" answer " adalah menambahkan titik ke akhir sumber:

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

Jawaban nyata adalah menggunakan rsync.

68
Matt Simmons

Anda dapat mencoba rsync. Lebih cocok untuk pekerjaan ini:

rsync -av src/user @ server: dest /

(Dan halaman manualnya layak dibaca.)

25
cstamas

Jangan menaruh garis miring setelah direktori sumber. Kode Anda akan terlihat seperti ini:

scp -rp src [email protected]:dest/

Ini akan membuat direktori 'src' di bawah 'dest' pada mesin jarak jauh, dengan semua file tersembunyi disertakan. Mungkin bukan yang Anda inginkan, tetapi itu akan menyalin file tersembunyi di src.

9
kbyrd

Berikut ini akan menyelesaikan masalah, ini telah sepenuhnya diuji pada lingkungan integrasi berkelanjutan kami

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

Semoga ini bisa membantu

3
stevensagaar

Untuk menyalin hanya file yang tersembunyi, Gunakan perintah ini

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

Game yang sebenarnya adalah /.[!.]* tag yang merujuk ke file yang dimulai dengan .(tersembunyi)

1

Karena scp mendukung ekspresi reguler, ini akan membantu Anda:

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

0
donmutti

Kontrol revisi yang didistribusikan menangani file tersembunyi

Karena kerentanan CVE-2018-20685, /. trick tidak bisa lagi digunakan dengan scp. Namun, kontrol revisi yang didistribusikan seperti git atau Hg Mecurial akan menangani file tersembunyi seperti file lainnya. Berikut adalah perintah untuk favorit saya - 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/

Perubahan selanjutnya perlu dilakukan lagi dengan client:$ hg com -m "commit message" dan kemudian didorong menggunakan client:$ hg Push perintah. Pelajari lebih lanjut tentang mendorong perubahan dari ini Lembar cheat Hg Mercurial .

0
Serge Stroobandt

Tidak ada solusi scp di atas bekerja untuk saya. Namun, saya menemukan bahwa hal berikut ini berfungsi pada cygwin: scp -r direktori/* Host: direktori '*' cocok dengan semua file yang terlihat dan melewatkan yang tidak terlihat.

0
Ray Cote

Jika login kata sandi dinonaktifkan pada mesin jarak jauh, dan satu-satunya cara untuk login adalah melalui kunci publik, maka Anda dapat menggunakan ini:

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

Ini menyalin file yang tersembunyi juga.

Harap perhatikan juga bahwa "user1" harus memiliki izin untuk membaca file-file itu, misalnya Anda tidak dapat menyalin folder ssh pengguna lain dengan metode ini.

0
Gergely Lukacsy