Tại sao OSX lại thêm '._ <tên tệp>' khi tôi tar thư mục?


14

Tôi chỉ muốn biết tại sao nếu tôi "tar -czf" một tệp / thư mục, osx sẽ thêm: ._ cho mỗi tệp? Tôi thấy những điều này khi tôi mở khóa trong linux. Hoặc khi tôi làm việc với dự án không nén trong nhật thực vì nó hoàn toàn không giống họ. Tôi dùng 10.7.5.

Câu trả lời:


15

Tar của OS X sử dụng định dạng AppleDouble để lưu trữ các thuộc tính và ACL mở rộng. tar và Archive Utility cũng biết cách chuyển đổi các tệp ._ trở lại định dạng gốc, nhưng các tệp ._ được giữ nếu lưu trữ được trích xuất trên nền tảng khác hoặc trên một khối lượng không phải HFS.

Bạn thường chỉ có thể yêu cầu tar xóa siêu dữ liệu bằng cách đặt COPYFILE_DISABLE thành một số giá trị:

$ xattr -l file.jpg
com.apple.quarantine: 0002;50d20c48;Tweetbot;
$ tar -cf 1.tar file.jpg 
$ tar -tf 1.tar 
./._file.jpg
file.jpg
$ COPYFILE_DISABLE=1 tar -cf 2.tar file.jpg 
$ tar -tf 2.tar 
file.jpg

Thông tin được lưu trữ dưới dạng các thuộc tính mở rộng:

  • Tài nguyên dĩa (từ 10,4)
    • Biểu tượng tùy chỉnh được đặt trong Finder và hình ảnh của các tệp Icon \ r
    • Siêu dữ liệu trong tệp PSD
    • Các đối tượng tập lệnh được lưu trữ trong các tệp scpt, trạng thái cửa sổ AppleScript Editor
  • Thông tin về bí danh
  • Kiểm dịch trạng thái, tải URL
  • Bình luận nổi bật
  • Mã hóa các tệp được lưu bằng TextEdit
  • Vị trí caret của các tệp được lưu bằng TextMate
  • Ghi chú sơ sài

Bạn có thể thấy ACL với ls -le:

$ ls -led /Applications/
drwxrwxr-x@ 146 root  admin  4964 Jun 17 22:53 /Applications/
 0: group:everyone deny delete

Lời khuyên tuyệt vời về COPYFILE_DISABLE, đã giải quyết các vấn đề của tôi với các tệp ._ khó chịu đó.
StasM

github.com/libarchive/libarchive/commit/ từ thu hút sự chú ý đến--disable-copyfile
Graham Perrin

-2

Các tệp đó luôn ở đó, nhưng chúng vô hình trong Finder (và hầu hết các ứng dụng Mac OS). Xem /superuser/212896/

biên tập

Đó là: các tệp này chứa các thuộc tính tệp mở rộng ... en.wikipedia.org/wiki/Extends_file_attribut ... và chúng được tạo ngay khi MacOS cung cấp các thuộc tính mở rộng cho các tệp. Vì vậy, các tệp ._ * này không được tạo cho kho lưu trữ tar.


2
KHÔNG, họ không luôn ở đó vì đó là thứ tôi đã làm việc trước đây trên Ubuntu. Tôi đoán rằng osx thêm chúng khi phát nổ tệp nén vào hệ thống. điều mà tất nhiên tôi không biết cho đến khi tôi đưa một cảnh sát trở lại nền tảng xuất xứ. Những gì tôi muốn biết là khi nó thêm chúng vào vị trí đầu tiên
Dark Star1

1
Các tệp này chứa các thuộc tính tệp mở rộng ... vi.wikipedia.org/wiki/Extends_file_attribut
GEdgar
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.