Есть некоторые недокументированные (?) Переменные окружения, которые можно использовать для отключения специальной обработки расширенных атрибутов и / или разветвлений ресурсов в tar (и pax, для чего это стоит). rsync имеет опцию -E
/ --extended-attributes
для включения (!) эта обработка - но на некоторых не-Apple rsync s -E
означает - --executability
вместо.
В Mac OS X 10.4 (в первом выпуске, в котором были созданы эти элементы архива ._*
кодировкой AppleDouble), переменной среды является COPY_EXTENDED_ATTRIBUTES_DISABLE
. В Leopard и Snow Leopard переменная равна COPYFILE_DISABLE
. Как правило, переменные просто должны быть установлены. Подойдет любое значение (даже пустая строка), но true
кажется традиционным. Таким образом:
COPY_EXTENDED_ATTRIBUTES_DISABLE=true COPYFILE_DISABLE=true tar …
Установка этой переменной имеет следующие эффекты:
- При создании / обновлении архивов:
- Предотвращает создание элементов архива
._*
при архивировании файлов с расширенными атрибутами.
- Позволяет создавать элементы архива
._*
при архивировании актуальных файлов ._*
.
- При извлечении архивов:
- Вызывает извлечение элементов архива
._*
в виде простых файлов вместо восстановления расширенных атрибутов в связанном файле.
Короче говоря, установка этих переменных делает tar, et al. вести себя как они (например) Linux.
Если вам редко требуется архивировать файлы с расширенными атрибутами или ветвями ресурсов и вам может понадобиться архивировать или извлекать фактические файлы ._*
, то вы можете рассмотреть возможность установки и экспорта этих переменных в один из файлов инициализации вашей оболочки:
# Tell tar, pax, etc. on Mac OS X 10.4+ not to archive
# extended attributes (e.g. resource forks) to ._* archive members.
# Also allows archiving and extracting actual ._* files.
COPY_EXTENDED_ATTRIBUTES_DISABLE=true COPYFILE_DISABLE=true
export COPY_EXTENDED_ATTRIBUTES_DISABLE COPYFILE_DISABLE
Эти файлы ._*
также используются для хранения расширенных атрибутов в файловых системах, которые их не поддерживают - чаще всего это варианты FAT. Эти переменные не очень помогут при работе с файлами ._*
в других файловых системах, только архивы.
Файловая система HFS+, используемая в Mac OS X, прекрасно способна хранить фактические файлы ._*
, поэтому, как только вы используете переменные для извлечения файлов в файловую систему, к файлам можно получить доступ всеми обычными способами.