почему OSX добавляет дополнительные '._ ' когда я тарирую каталог?

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

Ответы (2)

Смолка 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

Информация, хранящаяся в виде расширенных атрибутов:

  • Вилки ресурсов (начиная с версии 10.4)
    • Пользовательские значки, установленные в Finder, и изображения файлов Icon\r
    • Метаданные в файлах 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
Отличный совет по COPYFILE_DISABLE, решил мои проблемы с этими неприятными файлами ._.
github.com/libarchive/libarchive/commit/… обращает внимание на--disable-copyfile

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

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

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

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