GNU/Linux >> Belajar Linux >  >> Linux

rsync N file terbaru dalam direktori

Cara termudah adalah dengan menjalankan zsh daripada bash.

rsync -a -- /path/to/directory/*(om[1,42]) remote-server:

Di dalam tanda kurung, om memesan file dengan waktu modifikasi terbalik (yaitu dengan bertambahnya usia), dan [1,42] memilih 42 pertandingan pertama.

Jika Anda hanya menginginkan file biasa dan bukan direktori, tambahkan . setelah tanda kurung buka. Untuk kemungkinan lainnya, lihat di bawah “glob qualifiers” di zshexpn halaman manual.

Jika Anda ingin mencocokkan file di pohon direktori yang di-root di /path/to/directory , daripada hanya di dalam direktori itu, gunakan /path/to/directory/**/*(.om[1,42]) . Ini akan mengirim semua file ke direktori yang sama pada target.


Dengan asumsi Anda ingin mengirim file dari direktori kerja saat ini:

rsync `ls -tp | grep -v / | head -n <n>` <destination> <options>

akan melakukan trik. Misalnya:

rsync `ls -tp | grep -v / | head -n 10` [email protected]:/dest/dir/ --progress --compress

Ini akan memberikan kesalahan jika tidak ada file yang ditemukan di direktori kerja saat ini, atau jika salah satu file teratas berisi spasi atau karakter khusus lainnya.

Karakter ` di sekitar ls -tp | grep -v / | head -n <n> beri tahu bash untuk menjalankan perintah dan menggantinya dengan daftar file yang dihasilkan sebagai daftar yang dipisahkan oleh ruang. -t opsi memberi tahu ls untuk mengurutkan berdasarkan stempel waktu, -p memintanya untuk menambahkan / setelah nama direktori dan bagian grep menyaring baris yang diakhiri dengan / sehingga Anda tidak berakhir mengirim direktori. Tambahkan -c ke ls opsi jika Anda ingin file terbaru dinilai berdasarkan waktu pembuatan alih-alih waktu modifikasi (meskipun perhatikan bahwa beberapa program akan menghapus dan mengganti file alih-alih memperbaruinya sehingga waktu dan waktu dapat sama meskipun file tampaknya sudah ada lebih lama ).

Saya tidak akan mengklaim bahwa ini adalah termudah tapi itu akan menjadi cara pertama yang saya pikirkan.

(sub-pertanyaan-dalam-komentar mwm)

bagaimana dengan sebaliknya? server ke lokal?

Itu akan menjadi sedikit lebih rumit karena menurut saya Anda tidak dapat memiliki banyak sumber file jarak jauh di baris perintah rsync seperti yang Anda dapat dari lokal. Anda dapat menjalankan rsync di server melalui ssh , membuka terowongan kembali ke sshd lokal Anda (dengan ssh yang sama doa yang Anda jalankan melalui rsync) untuk menerima koneksi, pada dasarnya menggunakan perintah yang sama dari sisi lain.


Linux
  1. Bagaimana Cara Selektif Membungkam Rsync?

  2. Salin N File Pertama Di Direktori Berbeda?

  3. Menggunakan rsync untuk Menyinkronkan File

  1. Cadangkan file Anda dengan rsync

  2. Unzip Semua File Di Direktori

  3. folder gabungan linux:rsync?

  1. Linux – Hapus Direktori Besar yang Berisi Ribuan File Secara Efisien?

  2. File Cat Dengan Direktori?

  3. Ganti Nama File Di Direktori?