Я просто хотел бы знать, почему, если я "tar -czf" файл / каталог, osx добавляет: ._ для каждого файла? Я вижу это, когда я выхожу в Linux. Или когда я работаю с несжатым проектом в Eclipse, так как он им совсем не нравится. Я использую 10.7.5.
Я просто хотел бы знать, почему, если я "tar -czf" файл / каталог, osx добавляет: ._ для каждого файла? Я вижу это, когда я выхожу в Linux. Или когда я работаю с несжатым проектом в Eclipse, так как он им совсем не нравится. Я использую 10.7.5.
Ответы:
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
Информация хранится как расширенные атрибуты:
Вы можете увидеть 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). См. Https://superuser.com/questions/212896/
редактировать
То есть: эти файлы содержат расширенные атрибуты файла ... en.wikipedia.org/wiki/Extended_file_attributes ... и они были созданы, как только MacOS предоставил расширенные атрибуты файлам. Таким образом, эти ._ * файлы не были созданы для архива tar.