Tôi muốn sao chép các tệp đã sửa đổi trong kho svn sang thư mục khác, trong khi vẫn giữ cấu trúc thư mục của chúng.
Sau khi đọc trang mank và xargs, tôi tìm cách thay đổi tên tệp như thế này:
$ svn status -q | awk '{ print $2 }' | xargs -d \\n -I '{}' cp '{}' /tmp/xen/
Nhưng vấn đề là theo cách này cấu trúc thư mục không được bảo tồn, tôi muốn sao chép các tệp như thế này:
./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
Tôi đã cố gắng thay đổi lệnh cp thành cp '{}' / tmp / xen / '{}' nhưng nó nói không có tệp hoặc thư mục như vậy. Có cách nào để tạo tập tin sao chép cp và tạo thư mục nếu cần không? Và hãy chỉ ra nếu chuỗi lệnh này có thể được đơn giản hóa. :-)
Cảm ơn sự phản hồi của bạn. Vì thư mục hơi lớn, tôi không muốn sao chép toàn bộ thư mục bằng cp -R hoặc rsync. Đề xuất của CK về việc sử dụng ống nhựa tar khá hữu ích.
svn status -q | awk '{ print $2 }' | xargs tar cf - | (cd /tmp/xen/; tar xvf -)