Ответ 1
Это представление файлового ресурса fork/extended attributes.
Попробуйте ls [email protected] Test.txt
и xattr -l Test.txt
, чтобы узнать, какие дополнительные файлы OSX привязаны к файлу.
Я пишу свой собственный архиватор. Все работает отлично в моем приложении (даже чтение следов, сгенерированных другими инструментами), однако я не могу заставить файлы tar работать с сторонними читателями tar файлов. Поэтому я попытался создать tar файл в командной строке, построив один с моим кодом и двоичным кодом, сравнив их.
Но, похоже, проблема:
У меня есть текстовый файл под названием Test.txt, который я хочу добавить в мой tar, поэтому я запустил следующую команду в терминале:
tar -c -f x.tar Test.txt
При этом:
tar -tf x.tar
Получаю следующий список:
./._Test.txt
Test.txt
Это находится в терминале Mac OS X Lion.
Откуда этот файл ./._Test.txt
? Я не вижу этого, когда делаю ls -a
При проверке содержимого tar это, как представляется, несколько двоичных данных, но я понятия не имею, откуда оно взялось.
Это представление файлового ресурса fork/extended attributes.
Попробуйте ls [email protected] Test.txt
и xattr -l Test.txt
, чтобы узнать, какие дополнительные файлы OSX привязаны к файлу.
Вы можете добавить в свой файл bashrc следующее:
export COPYFILE_DISABLE=true
Или вы можете добавить эту опцию в свою команду tar
во время извлечения
tar -xzpvf x.tar --exclude="._*"
Как и в случае с bsdtar 3.0.3 - libarchive 3.0.3
(и, возможно, ранее), существует новая (специфичная для Mac OS X) опция для команды bsdtar
под названием --disable-copyfile
для подавления создания файлов ._
.
Таким образом OSX сохраняет файловые системы, когда целевая файловая система не поддерживает их.