Когда я смолю определенные файлы в OS X:
tar cvf foo.tar foo
Это производит дополнительный файл ._foo
в tarball:
./._foo
foo
который только обнаруживается, если я извлекаю его в операционной системе не-Mac. Но ._foo
не существует в моей файловой системе! Что продолжается? Как я могу избавиться от него?
Tar OS X использует формат AppleDouble для хранения расширенных атрибутов и ACLs.
$ touch file1 file2 file3
$ xattr -w key value file1
$ chmod +a 'admin allow delete' file2
$ ls -le@ *
-rw-r--r--@ 1 lauri staff 0 May 25 07:09 file1
key 5
-rw-r--r--+ 1 lauri staff 0 May 25 07:09 file2
0: group:admin allow delete
-rw-r--r-- 1 lauri staff 0 May 25 07:09 file3
$ tar -cf 1.tar *
$ tar -tf 1.tar
./._file1
file1
./._file2
file2
file3
Tar OS X также знает, как преобразовать. _ участники назад к собственным форматам, но. _ файлы обычно сохраняются, когда архивы извлечены на других платформах. Можно сказать tar не включать метаданные установкой COPYFILE_DISABLE к некоторому значению:
$ COPYFILE_DISABLE=1 tar -cf 2.tar file*
$ tar -tf 2.tar
file1
file2
file3
man copyfile
ls -l@
показывает ключи и размеры расширенных атрибутов, ls -le
печать ACLsxattr -l
перечисляет ключи и значения расширенных атрибутовxattr -c
очищается все расширенные атрибуты (-d не может использоваться один),chmod -N
удаляет ACLsИнформация, хранившая как расширенные атрибуты:
._
файлы являются ветвями ресурсов, как упомянуто в других ответах. Однако существует лучший способ избавиться от них при использовании tar
:
export COPYFILE_DISABLE=true
tar cvf foo.tar foo
Существует также a dot_clean
утилита для чистки этих файлов (я думаю, что она обычно используется для внешнего устройства хранения данных).
Символ точки, ".", используется на платформе Mac в качестве индикатора скрытого файла. В Windows это - символ "$". Так или иначе. файл _foo, вероятно, содержит некоторый OS X определенная информация, и я рекомендовал бы против удаления его. В других системах необходимо будет проигнорировать его, или кто-то здесь смог предоставлять Вам сценарий, который скроет файлы и папки, которые начинаются с a ".".