Команда Tar в mac os x добавляет "скрытые" файлы, почему? [закрытый]
Я пишу свой собственный архиватор tar. Все прекрасно работает внутри моего приложения (даже чтение tars, созданных с помощью других инструментов), однако я не могу заставить мои файлы tar работать с 3-й стороной tar file readers. Поэтому я попытался создать файл 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 это, кажется, какие-то двоичные данные, но я понятия не имею, откуда они берутся.
4 ответов:
Это представление атрибутов fork/extended ресурса файла.
Попробуйте
ls -l@ 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 сохраняет вилки файловой системы, если целевая файловая система их не поддерживает.
Comments