tar -xvf * .tar.gz cho tôi một cái tên kỳ lạ khi khai thác


-1

Tôi có một tập tin "elaticsearch-servicewrapper.tar.gz". Khi tôi cố chạy:

tar -xvf elasticsearch-servicewrapper.tar.gz

Tôi hy vọng thư mục được trích xuất sẽ được gọi là "elSTERearch-elSTERearch-servicewrapper". Nhưng thay vào đó, tôi đã nhận được "elaticsearch-elSTERearch-servicewrapper-d47d048". Có cách nào để tôi có thể buộc tên thư mục đích không?

Đây là trên Ubuntu 12.04.


tartrích xuất các tập tin vào thư mục mà nó tìm thấy, với tên tệp được tìm thấy trong kho lưu trữ. Nếu các tên trong kho lưu trữ bắt đầu bằng "elSTERearch-elSTERearch-servicewrapper-d47d048 /", thì bạn không thể dễ dàng ngăn tar tạo thư mục đó. Ngoại trừ có lẽ liên kết nó đến vị trí mong muốn của bạn trước khi bỏ chọn.
Henning Makholm

... hmm, thực sự với GNU tar, bạn có thể sử dụng --strip-components 1để làm cho nó bỏ qua phần tử tên đường dẫn đầu tiên của mỗi tên tệp được lưu trữ.
Henning Makholm

Câu trả lời:


5

Nó không phải là tar - thư mục chỉ được tạo vì dù sao nó cũng nằm trong tarball, vì vậy nó có bất kỳ tên nào được lưu trữ bên trong tarball.

Bạn có thể tạo thư mục đích của riêng mình và trích xuất nó vào đó bằng cách sử dụng --strip-thành phần để loại bỏ các tên đường dẫn hàng đầu như một cách giải quyết.


0

Tại sao bạn không đổi tên nó bằng cách mv elasticsearch-elasticsearch-servicewrapper-d47d048 elasticsearch-elasticsearch-servicewrapper?

Bạn cũng có thể thử tar -xvf elasticsearch-servicewrapper.tar.gz -C /tmp/elasticsearch-servicewrapper.


nó là một phần của mã rối, vì vậy tôi đang cố gắng làm một cái gì đó như: tar -xzf /tmp/elSTERearch-servicewrapper.tar.gz -C / tmp && mv / tmp / elSTERearch-servicewrapper /usr/local/elSTERearch-0.19. 11 / bin

Tôi hiểu rồi. Tôi đã cập nhật câu trả lời của mình. Xem nếu điều đó làm việc.
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.