Заставьте tar Mac прекращать помещать. _ * имена файлов в архивах tar [дубликат]

Возможный дубликат:
Почему я получаю файлы как. _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. Но я не хочу их---, они - просто спам для меня. Там какой-либо путь состоит в том, чтобы подавить их?

46
задан 20.03.2017, 12:16

3 ответа

На ответ на другой вопрос можно установить недокументированную (?) переменную среды 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, который работает таким же образом.

69
ответ дан 07.12.2019, 08:35

Не эксперт, но немного поиска с помощью Google нашел это: http://www.ofzenandcomputing.com/zanswers/3422

и это: http://hintsforums.macworld.com/archive/index.php/t-28703.html

Вторая команда похожа на него, мог быть включен в сценарий... Вы не можете предотвращать создание файлов ветви ресурсов, но можно автоматически удалить их впоследствии.

править: Я должен был упомянуть, что это может иметь плохие результаты, использовать на Ваш собственный риск.

0
ответ дан 07.12.2019, 08:35

Можно попытаться компилировать собственное tar, или установка его от Macports или Fink при наличии (Домашнее пиво не имеет его). С некоторой "удачей" это должно быть незнакомо с метаданными OS X и пропуском, создающим те файлы.

0
ответ дан 07.12.2019, 08:35

Теги

Похожие вопросы