GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara _MOVE_ file dengan scp?

Solusi 1:

rsync over ssh mungkin pilihan terbaik Anda dengan --remove-source-files opsi

rsync -avz --remove-source-files -e ssh /this/dir [email protected]:/remote/dir 

tes cepat memberi;

[[email protected] ~]$ mkdir test1
[[email protected] ~]$ mkdir test2
[[email protected] ~]$ touch test1/testfile.1
[[email protected] ~]$ ls test1/
testfile.1
[[email protected] ~]$ rsync --remove-source-files -av -e ssh test1/testfile.1 [email protected]:/home/tomh/test2/
sending incremental file list

sent 58 bytes  received 12 bytes  10.77 bytes/sec
total size is 0  speedup is 0.00

[[email protected] ~]$ ls test1/
[[email protected] ~]$
[[email protected] ~]$ ls test2/
testfile.1

Seperti yang disebutkan @SvenW, -e ssh adalah default sehingga dapat dihilangkan.

Solusi 2:

Gunakan rsync bukannya scp :

rsync -avz --remove-source-files /sourcedir [email protected]:/targetdir 

Info selengkapnya dengan man rsync .

Solusi 3:

Pertanyaan ini telah dijawab dengan baik, dan jawabannya diterima, tetapi karena itu muncul di bagian atas halaman depan, saya pikir setidaknya saya akan mencoba menjawabnya dengan lebih tepat, jika kurang elegan. Ya, Anda dapat menggunakan kode pengembalian dari scp , dan saya sering melakukannya. Di bash :

scp foo [email protected]:/destination && rm foo

Saya mengambil poin Anda tentang banyak file untuk disalin dan menangani kegagalan di tumpukan dengan benar, jadi untuk banyak file:

for file in bar*; do scp "$file" [email protected]:/destination && rm "$file" ; done

Yang terakhir ini hanya praktis jika Anda menggunakan ssh-agent , tapi saya sangat berharap demikian.

Solusi 4:

dalam situasi saya, port ssh bukan 22, jadi

rsync -avz --remove-source-files -e "ssh -p $portNumber" [email protected]:/path/to/files/ /local/path/

bekerja untuk saya.

Solusi 5:

jika Anda memiliki server target yang lebih lama seperti saya, Anda tidak dapat menggunakan

--remove-source-files

tetapi Anda harus menggunakan

--remove-sent-files --protocol=29

sebagai gantinya.


Linux
  1. Cara mengenkripsi file dengan gocryptfs di Linux

  2. Cara Unzip File di Linux (dengan Contoh)

  3. Cara Mentransfer File di Linux dengan SCP dan Rsync

  1. Bagaimana Cara Menemukan File Dengan Subpath Tertentu?

  2. Cara Mentransfer File dengan Aman Menggunakan SCP

  3. Cara Menemukan File dengan Perintah fd di Linux

  1. Cara Mengecualikan File dan Direktori dengan Rsync

  2. Salin file dengan SCP dan Rsync

  3. Cara menyalin banyak file secara bersamaan menggunakan scp