Saya ingin memindahkan beberapa subset file dari dirA ke dirB (misalkan file dengan "bla" dalam nama file), tetapi saya ingin semua direktori yang disarangkan sama di lokasi baru. Bagaimana saya bisa melakukan itu?
directory-structure
file-copy
cstack
sumber
sumber
Jawaban:
Keajaiban
rsync
aturan filter:Konsultasikan
rsync
halaman manual untuk perincian tentang aturan filter, tapi ini versi kental untuk kebutuhan khusus ini.--filter="+ */"
berarti "termasuk semua yang merupakan direktori"--filter="-! *blah*
berarti "kecualikan semua yang TIDAK termasuk bla dalam nama file"sumber
Jika Anda perlu menyalin file-file ini, cp akan melakukannya:
Opsi
--parents
mempertahankan subdir - ini menciptakan jalur direktori lengkap untuk tujuan.sumber
Ini bekerja untuk saya:
rsync -ave 'ssh -p 22' --filter="+ */" --exclude="*_blah.blah" [email protected]:/source/directory/ /destination/directory/
The
-e
mendefinisikan beralihrsync
mentransfer protokol dengan pelabuhan sebagai-p 22
. Juga,/
garis miring trailing penting untuk membuat program tahu itu berurusan dengan direktori.Terima kasih @pdo atas waktu ekstra di hari kerja saya!
sumber