Gói tệp với tar.gz từ thư mục gốc


8

Tôi cố gắng đóng gói tệp .csv bằng tar.gz, trong khi đang ở thư mục gốc.

Các tập tin myfile.csvđược đặt tại /mnt/sdb1/ Vì vậy tên tập tin đầy đủ là/mnt/sdb1/myfile.csv

Tôi cố gắng lưu tar.gz dưới /mnt/sdb1/old_files

Tôi đã thử nó như thế này:

tar -czf /mnt/sdb1/old_files/new.tar.gz mnt/sdb1/myfile.csv

Nhưng khi tôi giải nén tập tin, thì một thư mục có tên "mnt" sẽ được giải nén, trong đó có một thư mục khác gọi là "sdb1", chứa tập tin này.

Có thể chỉ nén tệp, thay vì sao chép tất cả các thư mục?

Câu trả lời:


12

sử dụng --directorytùy chọn từ man tar:

-C, - -directory TRỰC TIẾP

đổi sang thư mục TRỰC TIẾP

I E:

tar -C /mnt/sdb1/ -czf /mnt/sdb1/old_files/new.tar.gz myfile.csv

Cảm ơn bạn Fiximan! Điều này đã giải quyết vấn đề. Tôi sẽ upvote ngay khi tôi có 15 danh tiếng.
Đen

3

Bạn có đầu tiên cd /mnt/sdb1, sau đó khởi chạy tarlệnh.

FYI, bạn không cần sử dụng tarở đây vì mục đích của nó là để kết tụ một số tệp trong tarball. Vì bạn chỉ có một tệp ở đây, chỉ cần sử dụng gzip.


Tôi biết, nhưng tôi phải làm điều đó từ thư mục gốc, vì tôi thực thi lệnh từ một tập lệnh.
Đen

1
Man, vì vậy chỉ cần thêm cdlệnh trước tar, sau đó bạn có thể quay lại hoặc sử dụng cd /mnt/sdb1 && tar -czf new.tar.gz myfile.csv && cd /nếu bạn thích một dòng cmd.
McSinyx 20/07/2015

@McSinyx Vấn đề là thư mục không được lưu, ngay cả khi tôi thực thi cd /mnt/sdb1/thì tôi sẽ lại ở thư mục gốc trong lần thực hiện tiếp theo của lệnh. Nhưng giải pháp thứ hai của bạn có vẻ hợp lý với tôi, tôi thử nó.
Đen

@McSinyx NICE! Nó hoạt động :) Cảm ơn bạn, điều này sẽ RẤT hữu ích!
Đen

@EdwardBlack Bạn có thể chạy một tập lệnh từ bất cứ đâu, chỉ cần thêm các đường dẫn tuyệt đối có liên quan. Nói chung, sử dụng các đường dẫn tương đối là một ý tưởng tồi vì nó có thể phá vỡ mọi thứ một cách dễ dàng.
dr_ 20/07/2015

1

Sử dụng -Ctùy chọn để tar:

   -C Directory
        Causes the tar command to perform a chdir subroutine to the
        directory specified by the Directory variable.
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.