Làm thế nào để tạo lưu trữ tar trong một thư mục khác nhau?


38

Tôi muốn tạo một kho lưu trữ tar trong một thư mục khác chứ không phải thư mục hiện tại.

Tôi đã thử lệnh này:

tar czf file.tar.gz file1 -C /var/www/

nhưng nó tạo ra kho lưu trữ trong thư mục hiện tại. Tại sao?


3
Bạn dường như đã hiểu sai ý nghĩa của -C(điều này không lạ như tài liệu của nó mơ hồ). Để biết chi tiết, xem serverfault.com/q/416002/86283 .
NN

Câu trả lời:


47

Cách dễ dàng, nếu bạn không đặc biệt cần sử dụng -Cđể nói tarđể thay đổi sang một số thư mục khác, chỉ đơn giản là chỉ định đường dẫn đầy đủ đến kho lưu trữ trên dòng lệnh. Sau đó, bạn có thể ở trong bất kỳ thư mục nào bạn muốn để tạo cấu trúc thư mục mà bạn muốn bên trong kho lưu trữ.

Sau đây sẽ tạo kho lưu trữ /var/www/file.tar.gzvà đặt file1từ thư mục hiện tại (bất cứ điều gì xảy ra) trong đó, không có thông tin đường dẫn lưu trữ.

tar czf /var/www/file.tar.gz file1

Đường dẫn (đến tệp lưu trữ, tệp cấu thành hoặc cả hai) tất nhiên cũng có thể là tương đối. Nếu file1đang ở trong /tmp, bạn đang ở /var/spoolvà muốn tạo kho lưu trữ /var/www, bạn có thể sử dụng một cái gì đó như:

tar czf ../www/file1.tar.gz /tmp/file1

Có một triệu biến thể về chủ đề, nhưng điều này sẽ giúp bạn bắt đầu. Thêm vcờ nếu bạn muốn xem những gì tarthực sự làm.


1
Bạn cũng có thể sử dụng một đường dẫn tương đối.
NN

@NN Hoàn toàn đúng, nhưng vì chúng tôi không biết đó $PWDlà gì , nên có vẻ an toàn nhất khi sử dụng một đường dẫn tuyệt đối trong ví dụ.
một CVn

Thật vậy, tôi chỉ mặc dù nó có ý nghĩa bao gồm điều đó để cho thấy rằng đó là một lựa chọn có sẵn để giải quyết vấn đề.
NN

Bằng cách đó, đường dẫn file1trong kho lưu trữ tar sẽ là /tmp. Điều này có thể hoặc không thể là những gì bạn mong đợi.
mouviciel

8

Tôi biến dữ liệu nén thành luồng (-) và dễ dàng đổi tên và định vị (>) bất cứ nơi nào tôi chọn (Ngoài ra tôi luôn luôn tìm đường dẫn tương đối (./) để dễ xử lý hơn khi giải nén)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar

Điều đó không giúp ích cho các tệp riêng lẻ và -Cthành ngữ hơn nhiều (và ngắn hơn).
Mahmoud Al-Qudsi

3

Tôi nghĩ nó nên như vậy:
tar czf file.tar.gz -C /var/www/ file1

Mà làm việc cho tôi. Nó bảo thay đổi thư mục và sau đó chọn tập tin.


-2

Làm việc hoàn hảo

cd /home; tar -czvf - /var/log/* > varlog.tar.gz
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.