Ви написали в коментарі, що працюєте в системі Mac OS X. Це важлива підказка до мети цих ._*
файлів.
Ці ._*
записи в архіві - це фрагменти даних AppleDouble, які містять додаткову інформацію, пов'язану з відповідним файлом (той, що не має ._
префікса). Їх генерує сімейство функцій копіювального файлу (3) для Mac OS X (3) . Краплі AppleDouble зберігають дані контролю доступу (ACL) та розширені атрибути (як правило, прапори Finder та "вилки ресурсів", але для зберігання будь-яких даних можна використовувати xattrs).
bsdtar
Систематизовані інструменти архіву Mac OS X (також позначені як tar
), gnutar
і pax
) генерують ._*
член архіву для будь-якого файлу, який має будь-яку розширену інформацію, пов'язану з ним; в режимі "неархівного" вони також розшифрують цих членів архіву та застосують отриману розширену інформацію до пов'язаного файлу. Це створює «повну вірність» архіву для використання в системах Mac OS X, зберігаючи та пізніше витягуючи всю інформацію, яку може зберігати файлова система HFS +.
Відповідні інструменти архіву в інших системах не знають, щоб надати цим ._*
файлам особливу обробку , тому вони розпаковуються як звичайні файли. Оскільки такі файли в інших системах досить марні, їх часто сприймають як "непотрібні файли". Відповідно, якщо система, яка не має Mac OS X, створює архів, який включає звичайні файли, які починаються з цього ._
, інструменти для знешкодження Mac OS X спробують розшифрувати ці файли як розширену інформацію.
Однак існує недокументований (?) Спосіб змусити системні архіватори Mac OS X вести себе так, як це стосується інших систем Unixy: змінна середовище COPYFILE_DISABLE. Встановлення цієї змінної (на будь-яке значення, навіть порожню рядок) не дозволить архіваторам створювати ._*
члени архіву для представлення будь-якої розширеної інформації, пов'язаної з архівованими файлами. Його наявність також заважатиме архіваторам намагатися інтерпретувати таких членів архіву як розширену інформацію.
COPYFILE_DISABLE=1 tar czf new.tar.gz …
COPYFILE_DISABLE=1 tar xzf unixy.tar.gz …
Ви можете встановити цю змінну у файлі ініціалізації оболонки, якщо ви хочете працювати таким чином частіше.
# disable special creation/extraction of ._* files by tar, etc. on Mac OS X
COPYFILE_DISABLE=1; export COPYFILE_DISABLE
Потім, коли вам потрібно знову ввімкнути функцію (для збереження / відновлення розширеної інформації), ви можете "зняти" змінну для окремих команд:
(unset COPYFILE_DISABLE; tar czf new-osx.tar.gz …)
Архіватори на Mac OS X 10.4 також роблять щось подібне, хоча вони використовують іншу змінну середовища: COPY_EXTENDED_ATTRIBUTES_DISABLE