GNU tar(1)
có một tùy chọn gọn gàng được gọi là --transform
. Từ trang người đàn ông:
--transform, --xform EXPRESSION
sử dụng sed thay thế EXPRESSION để chuyển đổi tên tệp
Điều này cho phép chuyển đổi tên đường dẫn một cách nhanh chóng khi kho lưu trữ đang được trích xuất để bạn có thể kiểm soát vị trí và cách thức trích xuất nó.
Câu hỏi của tôi là, có cách nào để thực hiện một chuyển đổi tương tự tại chỗ ; tức là không trích xuất kho lưu trữ?
Thí dụ
[user@host]$ tar tf test.tar
./foo/blah ./foo/bleh
[user@host]$ some_deep_magic 's/foo/bar/' test.tar
[user@host]$ tar tf test.tar
./bar/blah ./bar/bleh
Ca sử dụng
Tôi đang phân phối một tar
kho lưu trữ cho những người dùng cuối cơ bản không biết gì và muốn nó trích xuất vào đúng đường dẫn mà không bị tôi can thiệp. Tôi đang cố gắng tránh các giải pháp tầm thường trong việc trích xuất kho lưu trữ, đổi tên các thư mục và đóng gói lại vì kho lưu trữ rất lớn.