Tại sao các tệp tar và gzip thường có phần mở rộng tệp?


8

Phần mở rộng tệp không cần thiết trên các thông báo, vẫn là mọi tệp tarred, gzipped hoặc bzipped mà tôi gặp có phần mở rộng tệp như .tar, .tar.gzhoặc .tgz.

Có bất kỳ lý do đặc biệt cho điều đó hoặc đó chỉ là quy ước?

Câu trả lời:


17

Ban đầu, trên các hệ thống unix, phần mở rộng trên tên tệp là một vấn đề quy ước. Họ cho phép một con người chọn chương trình phù hợp để mở một tập tin. Quy ước hiện đại là sử dụng các phần mở rộng trong hầu hết các trường hợp; trường hợp ngoại lệ phổ biến là:

  • Chỉ các tệp thông thường có phần mở rộng, không phải thư mục hoặc tên thiết bị. Thực tế chỉ là một thư mục hoặc thiết bị là đủ chỉ dẫn loại tệp.
  • Các tập tin thực thi được gọi trực tiếp không có phần mở rộng. Thực tế chỉ có thể thực thi là đủ thông tin cho người dùng và kernel không quan tâm đến tên tệp.
  • Tập tin bắt đầu với một từ trong tất cả các mũ thường tập tin văn bản, ví dụ như README, TODO. Đôi khi có một bộ phận bổ sung mà chỉ ra một tiểu thể loại, ví dụ như INSTALL.linux, INSTALL.solaris.
  • File có tên bắt đầu bằng một dấu chấm là cấu hình hay trạng thái tập tin của một ứng dụng cụ thể, và thường không có một phần mở rộng, ví dụ như .bashrc, .profile, .emacs.
  • Có một vài trường hợp truyền thống, ví dụ Makefile.

(Đây là những trường hợp phổ biến, không phải là quy tắc khó và nhanh.)

Hầu hết các định dạng tệp nhị phân cũng chứa một số loại tiêu đề mô tả các thuộc tính của tệp và thường cho phép định dạng tệp được xác định thông qua các số ma thuật . Các filelệnh nhìn vào thông tin này và chương trình bạn dự đoán của mình.

Đôi khi phần mở rộng tệp cung cấp nhiều thông tin hơn định dạng tệp, đôi khi, ngược lại. Ví dụ: nhiều định dạng tệp bao gồm kho lưu trữ zip : thư viện Java ( .jar), tài liệu OpenOffice ( .odt,), tài liệu Microsoft Office ( .docx,), v.v. Một ví dụ khác là các tệp mã nguồn, trong đó phần mở rộng chỉ ngôn ngữ lập trình, có thể khó có thể đoán máy tính tự động từ nội dung tập tin. Ngược lại, một số phần mở rộng rất mơ hồ, ví dụ .ođược sử dụng cho các tệp mã được biên dịch (tệp đối tượng ), nhưng việc kiểm tra nội dung tệp thường dễ dàng tiết lộ loại máy và hệ điều hành mà tệp đối tượng dùng để làm gì.

Một lợi thế của tiện ích mở rộng là nhận ra nó nhanh hơn rất nhiều so với mở tệp và tìm kiếm các chuỗi ma thuật. Ví dụ, việc hoàn thành tên tệp trong shell hầu như luôn luôn dựa trên tên (chủ yếu là phần mở rộng), bởi vì việc đọc mọi tệp trong một thư mục lớn có thể mất nhiều thời gian trong khi chỉ cần đọc tên tệp là đủ nhanh để Tabnhấn.

Đôi khi, việc thay đổi phần mở rộng của tệp có thể cho phép bạn nói cách giải thích tệp, khi hai định dạng tệp gần như nhưng không hoàn toàn giống nhau. Ví dụ, một máy chủ web có thể xử lý .shtml.htmlkhác nhau, trước đây trải qua một số tiền xử lý phía máy chủ , sau đó được phục vụ như hiện trạng.

Trong trường hợp tài liệu lưu trữ gzip, gzipsẽ không file nén lại mà tận cùng tên trong .gz, .tgzvà một vài phần mở rộng khác. Bằng cách đó, bạn có thể chạy gzip *để nén mọi tệp trong một thư mục và các tệp đã nén không bị sửa đổi.


1
Thư mục chứa tập lệnh daemon đôi khi cũng được cung cấp phần mở rộng .d, ví dụ init.d, cron.d, v.v.
Lie Ryan

8

Họ có thể không cần một phần mở rộng, nhưng nó chắc chắn làm cho việc xác định chúng dễ dàng hơn trong đầu ra của ls.


2
Chính xác. Thông thường không có cờ "giữ tay tôi" tar, vì vậy bạn phải nói với nó loại lưu trữ nào bạn có.
Kevin Cantu

3

Phần mở rộng tập tin chủ yếu là một quy ước cho những người sử dụng hệ thống. Có những công cụ sử dụng phần mở rộng tên tệp để làm việc. Ví dụ: Nautilus hiển thị cho tôi một biểu tượng khác dựa trên phần mở rộng tệp.

Nếu tôi đưa cho bạn một tệp được gọi file, bạn có thể không biết cách mở tệp này. Tuy nhiên, nếu tôi đưa cho bạn một tệp có tên file.tar.gzhoặc file.tarbạn có thể nhanh chóng và dễ dàng tìm ra nó.


5
Nautilus sử dụng nhiều hơn chỉ là phần mở rộng tệp để xác định loại tệp. Một tệp tar.gz không có phần mở rộng thường sẽ vẫn có một biểu tượng ưa thích.
Steven D
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.