Mỗi câu trả lời cho một câu hỏi khác , bạn có thể đặt biến môi trường không có giấy tờ (?) COPYFILE_DISABLE để ngăn một số chương trình do hệ thống cung cấp (bao gồm tar ) có ý nghĩa đặc biệt đối với ._*
các thành viên lưu trữ. Cụ thể, nó sẽ ngăn họ:
lưu trữ dữ liệu thuộc tính mở rộng (bao gồm các nhánh tài nguyên) trong ._*
các thành viên lưu trữ
(nghĩa là không lưu trữ các ô lưu trữ được tạo ra trên Mac OS X nhưng có nghĩa là để sử dụng trên các hệ thống khác) và
cố gắng trích xuất các thuộc tính hoặc tài nguyên mở rộng từ các thành viên lưu trữ có tên như ._*
(nghĩa là không hiểu sai ._*
các thành viên lưu trữ trong kho lưu trữ từ các hệ thống khác).
Giá trị bạn sử dụng cho biến môi trường không quan trọng (thậm chí nó có thể là chuỗi rỗng). Các giá trị như 0
, và false
sẽ không thể kích hoạt tính năng này. Điều duy nhất quan trọng là liệu biến đó có được đặt hay không (bạn phải hủy cài đặt nó để bật tính năng này).
Bạn có thể sử dụng biến này trên các lệnh riêng lẻ bằng cách tận dụng khả năng của trình bao kiểu Bourne ( sh , ksh , bash , zsh , v.v.) để đặt tiền tố với các biến môi trường bổ sung.
COPYFILE_DISABLE=1 tar cf new.tar …
Nếu bạn gặp vấn đề thường xuyên hơn không, thì bạn có thể muốn đặt và xuất biến này trong một trong các tệp khởi tạo của shell.
# turn off special handling of ._* files in tar, etc.
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Khi bạn cần, sau đó bạn có thể hủy đặt biến cho các lệnh riêng lẻ.
(unset COPYFILE_DISABLE; tar cf somefile.tar …)
Trên hệ thống Mac OS X 10.6 này, tất cả các lệnh sau đây dường như đều biết về COPYFILE_DISABLE:
/usr/bin/tar
(một liên kết tượng trưng đến bsdtar
)
/usr/bin/bsdtar
/usr/bin/gnutar
/bin/pax
COPYFILE_DISABLE có nguồn gốc từ Mac OS X 10.5. Nếu bạn cần hỗ trợ 10,4, nó có COPY_EXTENDED_ATTRIBUTES_DISABLE hoạt động theo cùng một cách.