tar - Loại bỏ các thành phần thư mục hàng đầu về khai thác


104

Làm thế nào bạn có thể trích xuất chỉ mục tiêu và không phải là cây dir hoàn chỉnh?

nén

tar cf /var/www/site.tar /var/www_bak/site

trích xuất

tar xf /var/www/site.tar -C /tmp

Điều này sẽ tạo ra:

/tmp/var/www/site

Làm thế nào có thể tránh toàn bộ cây dir được tạo khi giải nén tập tin?

Những gì tôi muốn nó giải nén để:

/tmp/site

Câu trả lời:


34

Tại sao không sử dụng -Ctùy chọn khi tạo:

$ tar cf /var/www/site.tar -C /var/www_bak/ site

1
TMTOWTDI. Điều đó cũng sẽ hoạt động, sử dụng cùng một -Ctùy chọn;)
MikeyB

12
Anh ta muốn tước đường dẫn từ một số thành phần hàng đầu, không thay đổi thư mục đầu ra. Xem dưới đây để có câu trả lời chính xác.
aymericbeaumet

4
Chúng tôi không thể sử dụng nó khi người khác chuẩn bị lưu trữ.

Bởi vì `` `_t = tiền tố - $ (ngày +% Y% m% d); tar -cjf ".backups / $ _ t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" -- các tập tin...; tar -df ".backups / $ _ t.tar.bz2" --strip-thành phần = 1 `` `
AnrDaemon

258

Bạn muốn sử dụng --strip-components=NUMBERtùy chọn tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Lệnh của bạn sẽ là:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

19
Câu trả lời này tốt hơn bởi vì bạn không phải suy nghĩ về nó trước khi tạo tar. Bạn có thể sử dụng nó với một tập tin tar đã được tạo. Cảm ơn @MikeyB!
Fabien Quatravaux

4
Tôi vui mừng báo cáo điều này hoạt động cả trong GNU tar và BSD tar.
Nathan Osman

4
và bởi vì bạn có thể không phải là người tạo tar ... (hoặc nếu bạn đang làm điều đó với một công cụ khác và công cụ đó làm những điều ngớ ngẩn ...)
xenoterracide

mặc dù vậy, bạn vẫn có thể thiếu --strip-componentscờ nếu bạn đang sử dụng triển khai được nhúng trong hộp bận tar.
sylvainulg

1
@FabienQuatravaux Vâng, vâng --- nếu bạn mắc lỗi và tạo một kho lưu trữ bao gồm các thư mục hàng đầu mà bạn không muốn thấy trong quá trình trích xuất. Nhưng rõ ràng hơn để xây dựng kho lưu trữ mà không có các thư mục không mong muốn hàng đầu ở nơi đầu tiên.
Calaf
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.