scp - lewati file saat berjalan

8

Saya menjalankan scp dan menyalin folder dari server jauh, saya menjalankan dengan -rl, jadi saya melihat file-file tersebut sedang disalin, apakah mungkin melewatkan file saat ini?

Chen Kinnrot
sumber

Jawaban:

11

Tidak, kamu tidak bisa. Tapi Anda bisa berhenti scpdan menggunakannya rsync. Ini hanya akan menyalin perbedaan yang tersisa dari salinan sebagian dan Anda dapat mengecualikan file atau dir yang tidak ingin Anda transfer.

rsync -avP -e ssh --exclude=somefile --exclude=somedir ./localdir/ user@server:remotedir/
forcefsck
sumber
2
Ini berguna, ya, tapi sayangnya itu tidak menjawab pertanyaan yang diajukan.
Emmaly Wilson
8
Itu menjawab pertanyaan dengan sempurna; pertanyaannya menanyakan apakah mungkin untuk melakukan sesuatu dan jawaban ini menjawab "tidak". Ini kemudian memberikan alternatif yang bermanfaat dan sesuai topik.
Christopher Shroba
1

Tidak, tidak dengan -ratau sintaks lain yang melakukan beberapa transfer file dalam satu scpperintah.

Yang mengatakan, scpjuga mengikuti paradigma UNIX: menulis program yang menyediakan fungsionalitas yang sederhana dan tepat yang dapat dirangkai bersama dengan cara yang menarik. Ini berarti akan ada kemungkinan untuk menulis sebuah loop yang interaktif melakukan individu doa dari perintah, satu per file. Anda kemudian dapat keluar dari perintah individu saat sedang dijalankan. (Ctrl-C)

Kode untuk ini dibiarkan sebagai latihan untuk pembaca, tetapi kebutuhan untuk loop ini untuk dieksekusi dalam shell interaktif harus ditekankan. Keluar dari cangkang non-interaktif akan mengakhiri seluruh pekerjaan.

Andrew B
sumber
0

Ya kamu bisa!

Mari kita daftar direktori jarak jauh dan menyalin setiap file secara terpisah. Kemudian tekan ctrl-c untuk setiap file yang tidak ingin Anda salin:

OLD_IFS="$IFS"
IFS=$'\n'
for file in `ssh user@host ls /remote/directory/`
  do echo user@host:/remote/directory/$file /local/directory/
done;
IFS="$OLD_IFS"

OLD_IFS ada di sini untuk menangani file dengan spasi di dalamnya.

Sylvain
sumber
Di mana Anda meletakkan ini? Bagaimana Anda menyebutnya?
StatsSorceress