wget's timestamping fungsi memastikan hanya mengunduh file yang telah berubah. Saya mencari alat baris perintah linux yang secara rekursif akan membandingkan isi direktori dengan versi yang disimpan (sejak terakhir kali dijalankan), dan menjalankan perintah shell arbitary pada file baru atau yang diperbarui. Pada dasarnya:
run-on-updated --directory /path/to/my/dir --last-results ~/.lastrun --exec "echo {}"
Saya bahkan bisa membayangkan ini sebagai perpanjangan dari perintah 'temukan'. Apakah alat semacam itu ada?
linux
command-line
timestamp
incremental-backup
command-line-tool
Nicholas White
sumber
sumber
rsync -v --dry-run /path/to/my/dir ~/.lastrun
Jawaban:
Upaya untuk menjawab pertanyaan - mungkin dengan banyak ruang untuk perbaikan:
Catatan untuk perintah tar: "Opsi '-g' memerintahkan tar untuk beroperasi pada arsip tambahan dengan metadata tambahan yang disimpan dalam file mandiri, yang disebut file snapshot. Tujuan file ini adalah untuk membantu menentukan file mana yang telah diubah, ditambahkan atau dihapus sejak cadangan terakhir, sehingga cadangan tambahan berikutnya hanya akan berisi file yang dimodifikasi. " (Kutipan dari doc)
Itu
grep
perintah tidak termasuk nama direktori (diakhiri dengan /) yang tar selalu menampilkan, dan akhirnyaxargs
akan menjalankan perintah yang diinginkan pada file.sumber
xargs -I{} echo '{}'
- Saya mengedit jawaban saya sesuai.Saya tidak yakin apa yang Anda maksud dengan kalimat "membandingkan isi direktori dengan versi yang disimpan", tetapi untuk melakukan apa yang dilakukan jawaban mpy, saya lebih suka
find
:Sebelum menjalankan
find
perintah pertama kali, Anda harus menjalankantouch
perintah jangan membuat file timestamp:Kemudian, jalankan perintah sentuh setelah find run:
Berkas
.lastrun
tidak akan pernah terdaftar sendiri, karena tidak pernah lebih baru dari dirinya sendiri.sumber