Почему OSX добавляет дополнительные «._ <имя файла>», когда я tar?

14

Я просто хотел бы знать, почему, если я "tar -czf" файл / каталог, osx добавляет: ._ для каждого файла? Я вижу это, когда я выхожу в Linux. Или когда я работаю с несжатым проектом в Eclipse, так как он им совсем не нравится. Я использую 10.7.5.

Темная Звезда1
источник

Ответы:

15

Tar OS X использует формат AppleDouble для хранения расширенных атрибутов и ACL. Утилиты tar и Archive также знают, как преобразовать файлы ._ обратно в собственные форматы, но файлы ._ сохраняются, если архив извлекается на другой платформе или на томе, отличном от 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

Информация хранится как расширенные атрибуты:

  • Ресурсные вилки (с 10.4)
    • Пользовательские значки, установленные в Finder, и изображения файлов Icon
    • Метаданные в PSD файлах
    • Объекты скрипта, хранящиеся в файлах scpt, состояние окна редактора AppleScript
  • Информация об псевдонимах
  • Статус карантина, URL загрузки
  • Прожектор комментирует
  • Кодирование файлов, сохраненных с помощью TextEdit
  • Положение каретки файлов, сохраненных с TextMate
  • Ским заметки

Вы можете увидеть ACL с ls -le:

$ ls -led /Applications/
drwxrwxr-x@ 146 root  admin  4964 Jun 17 22:53 /Applications/
 0: group:everyone deny delete
LRI
источник
Отличный совет по COPYFILE_DISABLE, решил мои проблемы с этими неприятными ._ файлами.
StasM
github.com/libarchive/libarchive/commit/… привлекает внимание--disable-copyfile
Грэм Перрин
-2

Эти файлы всегда были там, но они невидимы в Finder (и в большинстве приложений Mac OS). См. Https://superuser.com/questions/212896/

редактировать

То есть: эти файлы содержат расширенные атрибуты файла ... en.wikipedia.org/wiki/Extended_file_attributes ... и они были созданы, как только MacOS предоставил расширенные атрибуты файлам. Таким образом, эти ._ * файлы не были созданы для архива tar.

GEdgar
источник
2
НЕТ, они не всегда были там, потому что раньше я работал над Ubuntu. Я предполагаю, что osx добавляет их после взрыва сжатого файла в систему. чего, конечно, я не знал, пока не взял полицейского обратно на платформу происхождения. То, что я хотел бы знать, это то, что он добавляет их в первую очередь
Dark Star1
1
Эти файлы содержат расширенные атрибуты файлов ... en.wikipedia.org/wiki/Extended_file_attributes
GEdgar