Câu trả lời:
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.gz
và đặt file1
từ 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/spool
và 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 v
cờ nếu bạn muốn xem những gì tar
thực sự làm.
$PWD
là 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ụ.
file1
trong 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.
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
-C
thành ngữ hơn nhiều (và ngắn hơn).
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.
-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 .