OS X's tar uses the AppleDouble format to store extended attributes and 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
OS X's tar also knows how to convert the ._ members back to native formats, but the ._ files are usually kept when archives are extracted on other platforms. You can tell tar to not include the metadata by setting COPYFILE_DISABLE to some value:
$ COPYFILE_DISABLE=1 tar -cf 2.tar file*
$ tar -tf 2.tar
file1
file2
file3
- The copyfile functions are described in
man copyfile
ls -l@
shows the keys and sizes of extended attributes, ls -le
prints ACLs
xattr -l
lists the keys and values of extended attributes
xattr -c
clears all extended attributes (-d can't be used alone)
chmod -N
deletes ACLs
- Zip files created on OS X use a __MACOSX folder to store similar metadata
Information stored as extended attributes:
- Resource forks (resource forks have been extended attributes since 10.4)
- Custom icons set in Finder and the images of Icon\r files
- Metadata in PSD files
- Objects stored in scpt files, AppleScript Editor window state, descriptions of scripts
- Information about aliases (aliases stop working if extended attributes are removed)
- Quarantine status or source URLs of files downloaded from the internet
- Spotlight comments
- Encoding of files saved with TextEdit
- Caret position of files opened with TextMate
- Skim notes
Hate that. Looks ugly when I'm browsing inside archives with 7-Zip. – Nathaniel – 2009-10-27T03:46:32.663