Saya ingin menyalin file yang dimodifikasi di repositori svn ke direktori lain, sambil tetap struktur direktori mereka.
Setelah membaca halaman awk dan xargs, saya menemukan cara untuk mengganti nama file seperti ini:
$ svn status -q | awk '{ print $2 }' | xargs -d \\n -I '{}' cp '{}' /tmp/xen/
Tetapi masalahnya adalah bahwa dengan cara ini struktur direktori tidak dipertahankan, saya ingin menyalin file seperti ini:
./common/superp.c -> /tmp/xen/common/superp.c
./common/m2mgr.c -> /tmp/xen/common/m2mgr.c
./common/page_alloc.c -> /tmp/xen/common/page_alloc.c
./arch/x86/mm.c -> /tmp/xen/arch/x86/mm.c
./arch/x86/mm/shadow/private.h -> /tmp/xen/arch/x86/mm/shadow/private.h
Saya telah mencoba mengubah perintah cp menjadi cp '{}' / tmp / xen / '{}' tetapi dikatakan tidak ada file atau direktori tersebut. Apakah ada cara untuk membuat file copy cp dan membuat direktori jika diperlukan? Dan tolong tunjukkan apakah rantai perintah ini dapat disederhanakan. :-)
Terima kasih atas semua balasan Anda. Karena direktori agak besar, saya tidak ingin menyalin seluruh direktori menggunakan cp -R atau rsync. Saran CK untuk menggunakan pipa tar cukup berguna.
svn status -q | awk '{ print $2 }' | xargs tar cf - | (cd /tmp/xen/; tar xvf -)