Возможный дубликат:
Почему я получаю файлы как. _foo в моем tarball на 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. Но я не хочу их---, они - просто спам для меня. Там какой-либо путь состоит в том, чтобы подавить их?
На ответ на другой вопрос можно установить недокументированную (?) переменную среды COPYFILE_DISABLE для предотвращения нескольких из предоставленных систему программ (включая tar) от предоставления особого значения к ._*
члены архива. В частности, это предотвратит их от:
храня расширенные данные атрибута (включая ветви ресурсов) в ._*
члены архива
(т.е. не “загрязняйте” архивы, созданные на Mac OS X, но предназначенные для использования в других системах), и
попытка извлечь расширенные атрибуты или ресурсы от членов архива, названных как ._*
(т.е. не неправильно истолковывать ._*
заархивируйте участников в архивах от других систем).
Значение, которое Вы используете для переменной среды, не важно (это может даже быть пустая строка). Значения как 0
, и false
не повторно включит функцию. Единственная вещь, которая - вопросы, установлена ли переменная (необходимо “сбросить” ее для перевключения функции).
Можно использовать эту переменную на отдельных командах путем использования в своих интересах способности оболочек стиля Границы (sh, ksh, удар, zsh, и т.д.) к командам префикса с дополнительными переменными среды.
COPYFILE_DISABLE=1 tar cf new.tar …
Если Вы сталкиваетесь с проблемой, как правило, то Вы могли бы хотеть установить и экспортировать эту переменную в одном из файлов инициализации Вашей оболочки.
# turn off special handling of ._* files in tar, etc.
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Когда Вы должны, можно затем сбросить переменную для отдельных команд.
(unset COPYFILE_DISABLE; tar cf somefile.tar …)
На этом 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, который работает таким же образом.
Не эксперт, но немного поиска с помощью Google нашел это: http://www.ofzenandcomputing.com/zanswers/3422
и это: http://hintsforums.macworld.com/archive/index.php/t-28703.html
Вторая команда похожа на него, мог быть включен в сценарий... Вы не можете предотвращать создание файлов ветви ресурсов, но можно автоматически удалить их впоследствии.
править: Я должен был упомянуть, что это может иметь плохие результаты, использовать на Ваш собственный риск.
Можно попытаться компилировать собственное tar
, или установка его от Macports или Fink при наличии (Домашнее пиво не имеет его). С некоторой "удачей" это должно быть незнакомо с метаданными OS X и пропуском, создающим те файлы.