GNU/Linux >> Belajar Linux >  >> Linux

Mengunggah direktori dengan sftp?

Saya tidak tahu mengapa sftp melakukan ini, tetapi Anda hanya dapat menyalin secara rekursif jika direktori tujuan sudah ada. Jadi lakukan ini...

sftp> mkdir bin
sftp> put -r bin

DIPERBAIKI :Awalnya saya salah mengklaim bahwa OpenSSH tidak mendukung put -r . Ya, tetapi melakukannya dengan cara yang sangat aneh. Tampaknya mengharapkan direktori tujuan sudah ada, dengan nama yang sama dengan direktori sumber.

sftp> put -r source
 Uploading source/ to /home/myself/source
 Couldn't canonicalize: No such file or directory
 etc.
sftp> mkdir source
sftp> put -r source
 Uploading source/ to /home/myself/source
 Entering source/
 source/file1
 source/file2

Yang sangat aneh adalah ini bahkan berlaku jika Anda memberikan nama yang berbeda untuk tujuan:

sftp> put -r source dest
 Uploading source/ to /home/myself/dest
 Couldn't canonicalize: ...
sftp> mkdir dest
sftp> put -r source dest
 Uploading source/ to /home/myself/dest/source
 Couldn't canonicalize: ...
sftp> mkdir dest/source
sftp> put -r source dest
 Uploading source/ to /home/myself/dest/source
 Entering source/
 source/file1
 source/file2

Untuk put rekursif yang diimplementasikan dengan lebih baik , Anda dapat menggunakan Putty psftp alat baris perintah sebagai gantinya. Ada di putty-tools paket di bawah Debian (dan kemungkinan besar Ubuntu).

Bergantian, Filezilla akan melakukan apa yang Anda inginkan, jika Anda ingin menggunakan GUI.


Anda mungkin tertarik menggunakan rsync alih-alih. Perintah untuk itu adalah

 rsync --delete --rsh=ssh -av bin/ remote-ip-or-fqdn:/home/earlz/blah/bin/

Ini akan menyalin semua yang ada di bin/ dan letakkan di server jarak jauh di /home/earlz/blah/bin/ . Sebagai keuntungan tambahan, ini pertama-tama akan memeriksa untuk melihat apakah file di sisi jarak jauh tidak berubah, dan jika tidak, itu tidak akan dikirim ulang. Selain itu, Anda dapat menambahkan opsi -z dan opsi ini akan memampatkannya untuk Anda.


Linux
  1. Linux – Suid Tidak Berpengaruh Pada Direktori Dengan Linux?

  2. Bagaimana Mendapatkan Ls Untuk Mencantumkan Direktori Dengan Trailing Forward-slash?

  3. Mengalami Masalah Dengan Cari Perintah Pemangkasan Direktori?

  1. Howto:Pemrograman C dengan Direktori di Linux

  2. Buat file dengan file sumber di direktori berbeda

  3. Bagaimana saya bisa melakukan HTTP PUT dengan Wget?

  1. Cara bekerja dengan klien SFTP di Linux – 10 perintah sftp

  2. Pertahankan Tanggal Dimodifikasi Pada Direktori / Folder Dengan Rsync?

  3. Bagaimana Cara Menghapus Direktori Secara Rekursif Dengan Wildcard?