ฉันแค่อยากจะรู้ว่าทำไมถ้าฉัน "tar -czf" ไฟล์ / ไดเรกทอรี osx เพิ่ม: ._ สำหรับแต่ละไฟล์? ฉันเห็นสิ่งเหล่านี้เมื่อฉันไม่ได้ลินุกซ์ หรือเมื่อฉันทำงานกับโปรเจ็กต์ที่ไม่บีบอัดใน eclipse เพราะไม่ชอบเลย ฉันใช้ 10.7.5
ฉันแค่อยากจะรู้ว่าทำไมถ้าฉัน "tar -czf" ไฟล์ / ไดเรกทอรี osx เพิ่ม: ._ สำหรับแต่ละไฟล์? ฉันเห็นสิ่งเหล่านี้เมื่อฉันไม่ได้ลินุกซ์ หรือเมื่อฉันทำงานกับโปรเจ็กต์ที่ไม่บีบอัดใน eclipse เพราะไม่ชอบเลย ฉันใช้ 10.7.5
คำตอบ:
tar ของ OS X ใช้รูปแบบAppleDoubleเพื่อจัดเก็บแอตทริบิวต์เพิ่มเติมและ ACL tar และยูทิลิตี้การเก็บถาวรยังรู้วิธีแปลงไฟล์. _ กลับเป็นรูปแบบเนทิฟ แต่ไฟล์. _ จะถูกเก็บไว้หากไฟล์เก็บถาวรถูกแตกบนแพลตฟอร์มอื่นหรือบนไดรฟ์ข้อมูลที่ไม่ใช่ HFS
โดยปกติคุณสามารถบอกให้ tar ลบข้อมูลเมตาได้โดยการตั้งค่า COPYFILE_DISABLE ให้เป็นค่าบางส่วน:
$ 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
ข้อมูลที่เก็บไว้เป็นคุณลักษณะเพิ่มเติม:
คุณสามารถดู ACL ด้วยls -le
:
$ ls -led /Applications/
drwxrwxr-x@ 146 root admin 4964 Jun 17 22:53 /Applications/
0: group:everyone deny delete
--disable-copyfile
ไฟล์เหล่านั้นอยู่ที่นั่นเสมอ แต่จะมองไม่เห็นใน Finder (และแอปพลิเคชัน Mac OS ส่วนใหญ่) ดู/superuser/212896/
แก้ไข
นั่นคือ: ไฟล์เหล่านี้มีคุณสมบัติไฟล์เพิ่มเติม ... en.wikipedia.org/wiki/Extended_file_attributes ... และพวกเขาถูกสร้างขึ้นทันทีที่ MacOS มอบคุณสมบัติเพิ่มเติมให้กับไฟล์ ดังนั้นไฟล์. _ * เหล่านี้จึงไม่ถูกสร้างขึ้นสำหรับไฟล์เก็บถาวร tar