Bạn đã đăng trong một bình luận rằng bạn đang làm việc trên hệ thống Mac OS X. Đây là một đầu mối quan trọng cho mục đích của các ._*
tập tin này .
Các ._*
mục lưu trữ này là các khối dữ liệu AppleDouble chứa thông tin bổ sung được liên kết với tệp tương ứng (tệp không có ._
tiền tố). Chúng được tạo bởi nhóm chức năng copyfile (3) cụ thể của Mac OS X. Các đốm màu AppleDouble lưu trữ dữ liệu kiểm soát truy cập (ACL) và các thuộc tính mở rộng (thông thường, cờ Finder và tài nguyên giả mạo forks, nhưng xattrs có thể được sử dụng để lưu trữ bất kỳ loại dữ liệu nào).
Các công cụ lưu trữ Mac OS X do hệ thống cung cấp ( bsdtar
(cũng được liên kết dưới dạng tar
) gnutar
và pax
) sẽ tạo ._*
thành viên lưu trữ cho bất kỳ tệp nào có bất kỳ thông tin mở rộng nào liên quan đến nó; trong chế độ không lưu trữ của người dùng, họ cũng sẽ giải mã các thành viên lưu trữ đó và áp dụng thông tin mở rộng kết quả cho tệp được liên kết. Điều này tạo ra một kho lưu trữ đầy đủ độ trung thực của người dùng để sử dụng trên các hệ thống Mac OS X bằng cách lưu giữ và trích xuất tất cả thông tin mà hệ thống tệp HFS + có thể lưu trữ.
Các công cụ lưu trữ tương ứng trên các hệ thống khác không biết xử lý đặc biệt cho các ._*
tệp này , vì vậy chúng được giải nén như các tệp thông thường. Vì các tệp như vậy khá vô dụng trên các hệ thống khác, nên chúng thường được xem là các tệp rác của Wikipedia. Tương ứng, nếu một hệ thống Mac OS X không phải của chương trình tạo ra một kho lưu trữ bao gồm các tệp bình thường bắt đầu ._
, các công cụ hủy lưu trữ Mac OS X sẽ cố gắng giải mã các tệp đó dưới dạng thông tin mở rộng.
Tuy nhiên, có một cách không có giấy tờ (?) Để làm cho các trình lưu trữ Mac OS X do hệ thống cung cấp hoạt động giống như trên các hệ thống Unixy khác: biến môi trường COPYFILE_DISABLE. Đặt biến này (thành bất kỳ giá trị nào, ngay cả chuỗi trống), sẽ ngăn người lưu trữ tạo ._*
thành viên lưu trữ để thể hiện bất kỳ thông tin mở rộng nào được liên kết với các tệp được lưu trữ. Sự hiện diện của nó cũng sẽ ngăn các nhà lưu trữ cố gắng diễn giải các thành viên lưu trữ như là thông tin mở rộng.
COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …
Bạn có thể đặt biến này trong tệp khởi tạo shell của mình nếu bạn muốn làm việc theo cách này thường xuyên hơn không.
# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Sau đó, khi bạn cần kích hoạt lại tính năng (để lưu giữ / khôi phục thông tin mở rộng), bạn có thể hủy cài đặt biến số cho các lệnh riêng lẻ:
(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)
Các trình lưu trữ trên Mac OS X 10.4 cũng thực hiện một số thứ tương tự, mặc dù chúng sử dụng một biến môi trường khác: COPY_EXTENDED_ATTRIBUTES_DISABLE