2012-01-07 14 views
19

Kendi tar archiver'ımı yazıyorum. Uygulamamın tamamında iyi çalışıyor (diğer araçlarla oluşturulan katranları bile okuyordum) ancak katran dosyalarının 3. parti tar dosya okuyucularla çalışmasını sağlayamıyorum. Bu yüzden, komut satırında bir tar dosyası oluşturmayı denedim, kodumla bir tane inşa ettim ve ikiliyi karşılaştırdım.Mac OS X'te Tar komutu "gizli" dosyalar ekleyerek, neden?

Ama bir sorun gibi görünüyor: Benim katran eklemek istediğiniz Test.txt adlı bir textfile var

, bu yüzden terminalde aşağıdaki komutu çalıştırın:

tar -c -f x.tar Test.txt 

bunu yaparken:

tar -tf x.tar 

aşağıdaki listesini almak:

./._Test.txt 
Test.txt 

Bu, Mac OS X Lion üzerindeki Terminalde bulunmaktadır.

Bu ./._Test.txt dosya nereden geliyor? Ls-

'u yaparken göremiyorum. Tar içeriğini denetledikten sonra, ikili bir veri gibi görünüyor, ancak nereden geldiğini bilmiyorum.

cevap

4

Dosyanın kaynak çatalı/genişletilmiş özniteliklerinin bir temsilidir.

OSX'in dosyaya ne kadar fazla eklendiğini görmek için ls [email protected] Test.txt ve xattr -l Test.txt'u deneyin.

30

Sen bashrc dosyasına aşağıdaki ekleyebilirsiniz - Eğer ekstraksiyon zaman

tar -xzpvf x.tar --exclude="._*" 
+4

Dışlama parametresi burada, verme komutunu kullanarak çalışmaz. –

+1

'--exclude' benim için çalıştı (bir şekilde sonra OS X üzerinde untarring bile her şeyi' ._'-files ile kirleten bir durumun içine alıyorum). –

17

adresinden tar komuta için bu seçeneği ekleyebilir,

export COPYFILE_DISABLE=true 

Ya Bsdtar 3.0.3 - libarchive 3.0.3'dan (ve belki de daha önce), bsdtar komutuna yeni (Mac OS X'e özgü) bir seçenek var ._ dosyalarının oluşturulmasını önlemek için --disable-copyfile.

+4

'bsdtar 2.8.3 - libarchive 2.8.3'' '10.7.5'' 'diskable-copyfile' belgelenmemiş, ancak yine de mevcuttur. –