tar với đường dẫn tương đối


24

Tôi cố gắng tạo một kho lưu trữ với tar bằng các đường dẫn tương đối. Tôi sử dụng lệnh sau:

tar czf ~/files/wp/my-page-order.tar.gz -C ~/webapps/zers/wp-content/plugins/ ~/webapps/zers/wp-content/plugins/my-page-order

Nhưng các tập tin lưu trữ vẫn có đường dẫn tuyệt đối. Làm thế nào tôi có thể sử dụng tar với đường dẫn tương đối?


Câu trả lời:


24

'~' được mở rộng bằng vỏ. Không sử dụng '~' với -C:

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~ \
       webapps/zers/wp-content/plugins/my-page-order

(tar sẽ bao gồm webapps / zers / wp-content / plugins / my-page-order path) hoặc

tar czf ~/files/wp/my-page-order.tar.gz \
      -C ~/webapps/zers/wp-content/plugins \
       my-page-order

(tar sẽ bao gồm đường dẫn thứ tự trang của tôi)

Hoặc chỉ cần cd đầu tiên ....

cd ~/webapps/zers/wp-content/plugins
tar czf ~/files/wp/my-page-order.tar.gz my-page-order

2
Giải thích là sai. Ở đây không quan trọng rằng ~ được mở rộng bằng vỏ. Điều quan trọng là -Cthay đổi thư mục làm việc hiện tại như được giải thích trong anwer bởi Lekensteyn.
Piotr Dobrogost

1
Không - nhìn vào câu hỏi ban đầu - đối số cuối cùng là một đường dẫn tuyệt đối.
symcbean

Vậy thì sao? Cả hai trường hợp của ~ đều được mở rộng và toàn bộ lệnh gọi không hoạt động như mong đợi chỉ vì đối số cuối cùng trong trường hợp sử dụng -Cnên được đưa ra dưới dạng đường dẫn tương đối mà thay vào đó được đưa ra dưới dạng đường dẫn tuyệt đối. Sử dụng ~ ở đây không thành vấn đề.
Piotr Dobrogost

11

-C new_cwdthay đổi thư mục làm việc hiện tại thành new_cwd. Các đối số sau đây được đánh giá liên quan đến new_cwd.

tar czf ~ / files / wp / my-page-order.tar.gz -C ~ / webapps / zers / wp-content / plugins / my-page-order


4

Giải pháp không GNU nếu tarkhông có -ztùy chọn, chỉ cần đề cập:

pushd ~/files/wp; tar cvf - my-page-order | gzip > my-page-order.tar.gz && rm -rf my-page-order; popd

EDIT (có &&và không có rm):

pushd ~/files/wp && tar cvf - my-page-order | gzip > my-page-order.tar.gz && popd

(1) Câu hỏi không nói lên điều gì rm; Tại sao bạn đưa nó vào câu trả lời của bạn? (2) Câu trả lời của bạn lưu trữ thư mục sai. (3) Tại sao bạn đổi tar -zthành tar | gzip? (4) Miễn là bạn sẽ sử dụng &&, có lẽ bạn cũng nên sử dụng &&sau pushd.
G-Man nói 'Tái lập Monica'

(1) Bạn đã đúng (2)? Cái nào tốt? (3) đây là điểm: phiên bản không phải GNU của tar (ví dụ: trên Unix), không có -z (4) Tôi sẽ sử dụng có thể &&trong một tập lệnh, nhưng tôi nghĩ rằng điều này không cần thiết trong "một lớp lót"
Mattia72

(2) OP muốn lưu trữ ~/webapps/zers/wp-content/plugins/my-page-ordervới đầu ra ~/files/wp/my-page-order.tar.gz; tài liệu lưu trữ lệnh của bạn ~/files/wp/my-page-order. (3) Cảm ơn bạn đã chỉnh sửa câu trả lời của bạn để giải thích lý do bạn sử dụng gzip.
G-Man nói 'Phục hồi Monica'
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.