mengapa OSX menambahkan ekstra '._ <nama file>' ketika saya tar direktori?

14

Saya hanya ingin tahu mengapa jika saya "tar -czf" file / direktori, osx menambahkan: ._ untuk setiap file? Saya melihat ini ketika saya untar di linux. Atau ketika saya bekerja dengan proyek terkompresi dalam gerhana karena tidak menyukai mereka sama sekali. Saya menggunakan 10.7.5.

Dark Star1
sumber

Jawaban:

15

Tar OS X menggunakan format AppleDouble untuk menyimpan atribut dan ACL yang diperluas. tar dan Archive Utility juga tahu bagaimana mengkonversi file ._ kembali ke format asli, tetapi file ._ disimpan jika arsip diekstraksi pada platform lain atau pada volume non-HFS.

Anda biasanya bisa memberi tahu tar untuk menghapus metadata dengan menetapkan COPYFILE_DISABLE ke beberapa nilai:

$ 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

Informasi yang disimpan sebagai atribut yang diperluas:

  • Fork sumber daya (sejak 10.4)
    • Ikon khusus diatur di Finder dan gambar file Ikon
    • Metadata dalam file PSD
    • Objek skrip disimpan dalam file scpt, status jendela Editor AppleScript
  • Informasi tentang alias
  • Status karantina, unduh URL
  • Komentar sorotan
  • Pengkodean file disimpan dengan TextEdit
  • Posisi caret file disimpan dengan TextMate
  • Catatan skim

Anda dapat melihat ACL dengan ls -le:

$ ls -led /Applications/
drwxrwxr-x@ 146 root  admin  4964 Jun 17 22:53 /Applications/
 0: group:everyone deny delete
Lri
sumber
Nasihat luar biasa tentang COPYFILE_DISABLE, memecahkan masalah saya dengan file-file ._ yang jahat itu.
StasM
github.com/libarchive/libarchive/commit/… menarik perhatian--disable-copyfile
Graham Perrin
-2

File-file itu selalu ada di sana, tetapi mereka tidak terlihat di Finder (dan sebagian besar aplikasi Mac OS). Lihat /superuser/212896/

sunting

Yaitu: file-file ini berisi atribut file yang diperluas ... en.wikipedia.org/wiki/Extended_file_attributes ... dan mereka dibuat segera setelah MacOS memberikan atribut yang diperluas ke file. Jadi file ._ * ini tidak dibuat untuk arsip tar.

GEdgar
sumber
2
TIDAK, mereka tidak selalu ada karena itu adalah sesuatu yang saya kerjakan sebelumnya di ubuntu. Saya kira osx menambahkannya saat meledakkan file terkompresi ke sistem. yang tentu saja saya tidak tahu sampai saya membawa polisi kembali ke platform asal. Yang ingin saya ketahui adalah mengapa ini menambahkannya pada awalnya
Dark Star1
1
File-file ini berisi atribut file yang diperluas ... en.wikipedia.org/wiki/Extended_file_attributes
GEdgar