Làm thế nào để tarball một thư mục mà không mang theo / đường dẫn / đến / thư mục?


15

Lệnh ví dụ:
$ tar -cvjf destination.tar.bz2 /path/to/folder/source

Tôi muốn cuối cùng destination.tar.bz2, khi được trích xuất, không bao gồm một /path/to/folder/thư mục tập tin. Có vẻ không hiệu quả để trích xuất tarball và sau đó mv nội dung của /path/to/folder/sourcemột thư mục khác.


Câu trả lời:


19

tar -C /path/to/folder -cvjf /path/for/acrhive.tar.bz2 source

-C (chữ hoa) có nghĩa là 'thư mục thay đổi', do đó, đặc tả tệp của bạn trở nên tương đối với đường dẫn được cung cấp với -C


Hãy nhớ rằng đường dẫn bạn cung cấp cho "nguồn" có liên quan đến "-C". Giống như, đó là những gì @thinice đã viết, chỉ là nếu bạn vẫn cung cấp một đường dẫn tuyệt đối thay vì tương đối ngay cả khi sử dụng "-C", bạn sẽ không nhận được kết quả mong muốn.
GuyPaddock

4

nhiều cách để thực hiện điều đó, nhưng đây có lẽ là cách đơn giản nhất:

cd /path/to/folder
tar -cvjf /past/to/destination.tar.bz2 source
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.