Apa cara terbaik untuk membandingkan dua struktur direktori dan menghapus file dan direktori asing di lokasi target?
Saya memiliki aplikasi galeri foto web kecil yang sedang saya kembangkan. Pengguna menambah & menghapus gambar menggunakan FTP. Perangkat lunak galeri web yang saya tulis membuat thumbnail baru dengan cepat, tetapi tidak berurusan dengan penghapusan. Apa yang ingin saya lakukan, adalah menjadwalkan perintah / skrip bash untuk mengurus ini pada interval yang telah ditentukan.
Gambar asli disimpan /home/gallery/images/
dan diatur dalam album, menggunakan subdirektori. Thumbnail di-cache /home/gallery/thumbs/
, menggunakan struktur direktori dan nama file yang sama dengan direktori gambar.
Saya sudah mencoba menggunakan yang berikut untuk mencapai ini:
rsync -r --delete --ignore-existing /home/gallery/images /home/gallery/thumbs
yang akan berfungsi dengan baik jika semua thumbnail telah di-cache, tetapi tidak ada jaminan bahwa ini akan terjadi, ketika ini terjadi, direktori jempol memiliki gambar ukuran penuh asli disalin ke sana.
Bagaimana saya bisa mencapai yang terbaik yang saya coba lakukan?
rmdir
?find
dan di[
tes]
. Tentu saja, harap sangat berhati-hati dengan perintah yang saya berikan dan modifikasi apa pun, dan uji dengan saksamaecho
!Anda
--existing
juga perlu :Dari halaman manual:
sumber
--ignore-errors
argumen. Itulah satu-satunya hal yang berhasil untuk saya. Terima kasih untuk--existing
dan--ignore-existing
! Saya menggunakan jawaban Anda sebagai dasar jawaban saya di sini .rm
,cp
ataumv
akan berfungsi seperti itulah kesalahannya: Mereka adalah masalah yang harus dilihat dan yang mencegah operasi dari menyelesaikan sukses. Anda dapat menginstruksikan sebagian besar alat untuk mengabaikan kesalahan (mis.-f
Untukrm
) tetapi saya tidak melihat bagaimana itu relevan dengan pertanyaan atau jawaban ini.