Возможное дублирование:
почему я получаю файлы типа ._foo в моем архиве на OS X?
Я создаю сценарии autoconf на Mac. Когда tar запускается, он помещает все эти имена ._ foobar в архив:
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpf
libewf-20110312/borlandc/builder5/ewfacquire/._ewfacquire.bpr
libewf-20110312/borlandc/builder5/ewfacquire/ewfacquire.bpr
Теперь происходит то, что файловая система Apple HFS помещает свойства файла в имена ._ foobar, чтобы их можно было восстановить в другой системе Mac. Но я не хочу их - они просто мусор для меня. Есть ли способ подавить их?
macos
filesystems
tar
metadata
vy32
источник
источник
._*
файлов из архивов (например.__init__.py
), который использует то же решение.Ответы:
Для ответа на другой вопрос вы можете установить недокументированную (?) Переменную среды COPYFILE_DISABLE, чтобы некоторые из поставляемых системой программ (включая tar ) не придавали особого значения
._*
членам архива. В частности, это помешает им:хранить расширенные данные атрибутов (включая ветки ресурсов) в
._*
элементах архива(т.е. не «загрязнять» архивы, созданные в Mac OS X, но предназначенные для использования в других системах), и
попытка извлечь расширенные атрибуты или ресурсы из элементов архива, названных как
._*
(то есть не интерпретировать
._*
элементы архива в архивах из других систем).Значение, которое вы используете для переменной среды, не имеет значения (это может быть даже пустая строка). Значения, как
0
, иfalse
не будет повторно включить функцию. Единственное, что имеет значение, это то, установлена ли переменная (вы должны «сбросить» ее, чтобы снова включить функцию).Вы можете использовать эту переменную в отдельных командах, используя возможности оболочек в стиле Борна ( sh , ksh , bash , zsh и т. Д.) Для добавления префиксов к командам с дополнительными переменными среды.
Если вы сталкиваетесь с проблемой чаще, чем нет, то вы можете установить и экспортировать эту переменную в один из файлов инициализации вашей оболочки.
Когда вам нужно, вы можете сбросить переменную для отдельных команд.
В этой системе Mac OS X 10.6 следующие команды, кажется, знают о COPYFILE_DISABLE:
/usr/bin/tar
(символическая ссылка наbsdtar
)/usr/bin/bsdtar
/usr/bin/gnutar
/bin/pax
COPYFILE_DISABLE возникла в Mac OS X 10.5. Если вам нужна поддержка 10.4, у нее есть COPY_EXTENDED_ATTRIBUTES_DISABLE, которая работает таким же образом.
источник
Не эксперт, но немного погуглил нашел это: http://www.ofzenandcomputing.com/zanswers/3422
и это: http://hintsforums.macworld.com/archive/index.php/t-28703.html
Вторая команда выглядит так, как будто она может быть включена в сценарий ... возможно, вы не сможете предотвратить создание файлов ветвления ресурса, но впоследствии можете автоматически удалить их.
редактировать: я должен был упомянуть, это может иметь плохие результаты, используйте на свой страх и риск.
источник
tar
кроме BSD (наlibarchive
основе Mac OS X), но вполне могут быть ненадежными; установка GNU tar часто является хорошей идеей. (Это, однако, больно. Я думаю, что вам нужно перечислить все из них и затем передать эти имена в командной строке.) Кроме того, вилки ресурсов технически находятся на диске, но в HFS + они хранятся в расширенных атрибутах; эти._
файлы являются способом OS Х хранения вилок ресурсов в местах , которые не поддерживают расширенные атрибуты.Вы можете попробовать скомпилировать свой собственный
tar
или установить его из Macports или Fink, если он доступен (у Homebrew его нет). С некоторой «удачей» он должен не знать метаданные OS X и пропустить создание этих файлов.источник