tar
lưu trữ các đường dẫn tương đối theo mặc định . GNU tar thậm chí còn nói như vậy nếu bạn cố lưu trữ một đường dẫn tuyệt đối:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Nếu bạn cần giải nén một thư mục cụ thể, hãy xem những gì trong tệp tar:
tar -tvf foo.tar
Và lưu ý tên tệp chính xác. Trong trường hợp foo.tar
tệp của tôi , tôi có thể trích xuất /home/foo/bar
bằng cách nói:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Vì vậy, không, cách bạn đăng không (nhất thiết) là cách chính xác để làm điều đó. Bạn phải rời khỏi dấu gạch chéo hàng đầu. Nếu bạn muốn mô phỏng các đường dẫn tuyệt đối, cd /
trước tiên hãy thực hiện và đảm bảo bạn là siêu người dùng. Ngoài ra, điều này cũng làm như vậy:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Có những lý do rất rõ ràng, tốt tại sao tar
chuyển đổi đường dẫn thành tương đối. Một là khả năng khôi phục kho lưu trữ ở những nơi khác ngoài nguồn ban đầu. Cái khác là bảo mật. Bạn có thể trích xuất một kho lưu trữ, hy vọng các tệp của nó xuất hiện trong thư mục làm việc hiện tại của bạn và thay vào đó ghi đè lên các tệp hệ thống (hoặc công việc của riêng bạn) ở nơi khác do nhầm lẫn.
Lưu ý: nếu bạn sử dụng -P
tùy chọn, tar
sẽ lưu trữ các đường dẫn tuyệt đối. Vì vậy, nó luôn trả tiền để kiểm tra nội dung của tài liệu lưu trữ lớn trước khi trích xuất.