tar nhân đôi kích thước của thư mục


0

Trong Solaris 10 tôi có thư mục gọi là ứng dụng. Tôi vào thư mục đó và nhập:

-bash-3.00# du -hs
7.2G   .

Rồi tôi vào:

tar -cvf /var/run/apps.tar apps

Kết quả:

-bash-3.00# ls -lad apps.tar 
-rw-r--r--   1 root     root     14174289408 Mar  5 16:05 apps.tar

Làm thế nào một thư mục 7GB có thể trở thành tar 14GB?


1
Và bạn chắc chắn rằng bạn đã không đóng gói tar vào chính nó?
Der Hochstapler

Tôi đã dán ở đây các lệnh tôi đã sử dụng, vì vậy, tôi khá chắc chắn. Là tar theo simlinks theo mặc định? Tôi thực sự không hiểu ...
Thomas

Nó không thực sự rõ ràng thư mục làm việc hiện tại của bạn là gì. Điều đó có thể có liên quan.
Der Hochstapler

Trong này câu hỏi / câu trả lời , mọi người thảo luận về cách các liên kết solaris xấu được đối xử.
woliveirajr

Câu trả lời:


1

tar tự nó không đặc biệt hiệu quả trong việc lưu trữ các tệp nhỏ. Nó sử dụng các khối 512 byte cố định. Siêu dữ liệu cũng được lưu trữ theo cách ít gọn hơn so với trên hệ thống tệp. Sự khác biệt bạn quan sát có thể là do một số lượng đáng kể các tệp nhỏ trong thư mục ứng dụng của bạn.

Để giảm thiểu hiệu ứng này, tôi khuyên bạn nên nén đầu ra tar theo cách đó:

  tar cvf - apps | gzip -v > /var/run/apps.tgz

Nếu bạn tình cờ sử dụng GNU tar, đó sẽ là:

  gtar czvf /var/run/apps.tgz apps

Bạn nói đúng, tôi có rất nhiều tập tin nhỏ trong đó. Có cách nào để tôi có thể chắc chắn rằng đó là do các tệp nhỏ và không có bất kỳ sự lộn xộn nào của simlink không?
Thomas

Solaris tar không tuân theo các liên kết tượng trưng với các tùy chọn bạn sử dụng.
jlliagre

1

Tar không thực hiện bất kỳ nén nào trên các tệp và sẽ luôn tạo ra tệp tar kết quả lớn hơn tổng của tất cả các tệp đã đi vào tệp.

Lý do chính xác tại sao tar là như vậy nhiều lớn hơn có thể là một trong một số yếu tố, chẳng hạn như một số lượng lớn các tệp nhỏ không được lưu trữ một cách hiệu quả, các liên kết cứng được theo dõi dẫn đến sự trùng lặp trong cây thư mục hoặc làm phẳng các tệp thưa thớt dẫn đến các tệp lớn hơn đáng kể .

Nếu bạn muốn tạo một tệp nhỏ để sao lưu hoặc chuyển sang hệ thống khác, tôi khuyên bạn nên nén tệp tar bằng tệp Gzip (sang tệp tar.gz) hoặc thuật toán nén khác để tạo tệp nhỏ hơn nhiều. Các tệp Tar có xu hướng nén tốt, do đó, tệp này sẽ tạo ra một tệp đáng kể dưới 14GB mà bạn đã trích dẫn.

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.