Apa itu folder __MACOSX?

152

Apa saja folder __MACOSX yang saya lihat dalam file zip yang dibuat oleh orang-orang di OSX? Beberapa mengambil sebanyak 30% dari file.

Program apa yang menghasilkan folder __MACOSX ini dan bagaimana pengguna mac dapat menghindari kesalahan ini?

Yada
sumber
8
Mereka sangat menjengkelkan, ya, dan biasanya tidak berguna karena garpu sumber daya sering kosong. Tapi setidaknya mereka tidak berbahaya, tidak seperti pendekatan non-standar yang diambil Apple untuk ukuran arsip> 4GB dengan OS X bawaan, yang akan membingungkan alat lain dan merusak lagi untuk file yang cukup besar. Dan hei, ini bisa lebih buruk, bisa jadi menyimpan dua salinan dari setiap file dengan nama yang sama, satu untuk data dan satu untuk fork sumber daya, sering membuat tidak mungkin untuk mengakses, seperti pra-OSX Mac dulu. Oh Apple, mengapa Anda membenci format file standar?
bobince
3
@obobince: sebenarnya, garpu sumber daya adalah ide yang sangat bagus ... saat itu. Hari-hari ini, efek yang sama dicapai dengan menyimpan sumber daya sebagai file individual, yang sebagian besar terlihat sangat mirip dengan format file standar.
16
Tidak ada yang salah dengan metadata, hanya saja Apple memiliki kemampuan membuat format sendiri dan mengacaukan format yang ada dengan ekstensi yang tidak kompatibel dan tidak sesuai! Memiliki data tipe konten sebagai metadata itu sendiri merupakan hal yang hebat dan menyedihkan saya bahwa OS X bergerak ke arah hack Windows ekstensi file sebagai alternatif. Meskipun ini tidak seburuk di Linux, di mana sistem file mendukung penyimpanan metadata Tipe-Konten, tetapi tidak ada desktop yang menggunakannya, lebih memilih campuran pola-ekstensi / nama-pola yang benar-benar rusak dan mengendus konten (urgh!). Huh, OS ya?
bobince
@obobince: Tapi ya, setidaknya format yang mereka buat untuk ini tidak membahayakan, selain dari daftar direktori yang sedikit berantakan dan membuang-buang 1 inode dan 1 blok setiap garpu sumber daya kosong yang diekstraksi, kecuali jika Anda menggunakan sesuatu seperti NTFS (yang akan menyimpan konten file dalam MFT untuk file sekecil itu), dalam hal ini hanya membuang "inode" (entri MFT).
SamB
9
Dapat diperbaiki setelah fakta olehzip -d filename.zip __MACOSX/\*
Chris Johnson

Jawaban:

52

http://www.realsoftware.com/listarchives/gettingstarted/2005-09/msg00328.html

Apple menyediakan kemampuan bawaan untuk file ZIP di OS X 10.3 dan lebih tinggi, dan file-file ini adalah hasil dari penyimpanan Apple Resource Forks secara aman. Anda tidak akan pernah melihat file-file ini menjalankan OS X 10.3 atau lebih tinggi, tetapi karena Windows dan sistem operasi lain tidak memahami bentuk khusus dari Resource Forks ini, mereka akan muncul seperti yang Anda lihat.

nickf
sumber
4
Ini bukan hanya garpu sumber daya, apa pun di luar konten file dasar akan dimasukkan ke dalam file AppleDouble. Apple menjauh dari sumber daya garpu, tetapi menuju hal-hal seperti atribut yang diperluas yang juga akan disimpan dalam wadah AppleDouble.
Gordon Davisson
14
Anda membuatnya terdengar seperti fitur. File .zip sengaja kurang di departemen metadata. Jika Anda ingin metadata, gunakan format yang berbeda, bukan Mac. Contoh implementasi zip + metadata yang tepat: .jar
Zenexer
16
tautan mati, tolong perbaiki.
Lucas - Better Coding Academy
71
"karena Windows dan sistem operasi lain tidak mengerti" - Ugh. Saya benci istilah seperti ini
Joe Plante
5
Baru ditemukan: jika Anda menggunakan Mac, menggunakan baris perintah, unzip filename.zipakan membuka direktori __MACOSX /, yang tidak Anda inginkan, tetapi open filename.zipakan melakukan hal yang benar.
Edward Falk
107

Berikut ini tautan yang menjelaskannya dengan cukup baik. Saya kira agak terlambat untuk membantu Yada, tetapi untuk anak cucu.

Penjelasan garpu sumber daya di Wikipedia

Sisanya menurut saya:

@nickf: Tidak pernah melihat file-file ini bukan FITUR dari versi OS X itu adalah cacat. Orang-orang menghasilkan data, membungkusnya, menyimpannya di media yang berbeda dan seterusnya. Mereka perlu tahu apa yang dibutuhkan atau apa yang tidak dibutuhkan. Menyembunyikannya membuat mereka dalam kegelapan.

Gagasan lama yang buruk untuk menyembunyikan sesuatu dari pengguna: Seorang programmer, yang peduli dengan kemanfaatan menyelesaikan pekerjaannya sendiri, menyalahgunakan sesuatu dalam domain pengguna akhir, untuk membuatnya mudah bagi dirinya sendiri.

Dalam hal ini ia menyimpan data meta di ruang data pengguna, ia kemudian menyembunyikannya dari pengguna. Dia melewatkan gambaran besar: Pengguna tidak akan menyadari detail tersembunyi. Ketika ia mengemas datanya dan mengirimkannya ke suatu tempat yang tidak terduga oleh programmer, bagian yang hilang tidak akan dikirimkan atau bagian yang tidak diketahui akan tiba yang tidak bisa dijelaskan oleh pengguna maupun penerima.

Menyembunyikan hal-hal dari pengguna itu buruk. Ini mengasumsikan pengguna bodoh, ketika lebih tepatnya programmer itu bodoh, atau malas.

Agar jelas, kebiasaan buruk ini tidak terbatas pada MAC. Itu ada di mana-mana. Ini adalah konsekuensi dari programmer yang jatuh cinta dengan skema dan vendor mereka sendiri memprioritaskan tujuan mereka sendiri di depan kebutuhan pengguna akhir.

Secara singkat.

__MACOSX:
kotoran programmer yang berbau aneh muncul dari bawah permadani tempat mereka disapu.

Programmer dan vendor: Harap simpan semuanya di tempat terbuka. Saat Anda menyembunyikannya, Anda membuat diri Anda bodoh dan pengguna tidak mendapat informasi.

pbernatchez
sumber
12
Jawaban ini akan lebih baik jika itu hanya sebuah jawaban. Mengomentari diperpanjang tentang programmer bodoh dan pengguna malas mengurangi itu.
Kristopher Johnson
1
@pbernatchez Sebenarnya, jika Anda berhenti untuk belajar tentang bagaimana segala sesuatu tampak dan bagaimana mereka berevolusi, mungkin Anda tidak akan meninggalkan di sini "kotoran" sombong Anda yang angkuh. Fork sumber daya adalah detail implementasi (sangat bagus!) Pra-Mac OS X dan pengguna hanya menemukannya ketika berinteraksi dengan sistem lain; sejak 90-an, Apple telah semakin pindah ke dunia tanpa garpu sumber daya, tetapi masih membungkuk ke belakang untuk menjaga kompatibilitas. "Simpan metadata di ruang data pengguna"? WTF? Seberapa memutar Anda harus mendefinisikan "metadata" dan "ruang data pengguna" untuk mengatakan itu? Anda harus membenci sistem file!
hmijail
3
"Menyembunyikan hal-hal dari pengguna itu buruk". Man, Anda juga harus membenci semua jenis antarmuka pengguna, dan perpustakaan, dan abstraksi, dan ... well, segala jenis pemrograman dan komputer lebih maju daripada sempoa.
hmijail
4
Ini tidak menjawab pertanyaan. Setelah membaca jawaban ini, saya masih tidak tahu metadata apa yang terkandung dalam folder _MACOSX, atau garpu sumber daya apa. Saya kira orang tidak setuju dengan ini hanya karena mereka setuju dengan kata-kata kasar?
Atte Juvonen
1
Meskipun saya setuju bahwa nada bermuatan emosi tidak membantu, saya juga sepenuhnya setuju bahwa membuat hal-hal tersembunyi yang kadang-kadang diperlukan adalah ide yang sangat buruk, persis seperti yang dinyatakan dalam jawaban ini: pengguna akan (a) tidak mengirim file tersembunyi yang diperlukan, atau (b) mengirimkan file tersembunyi yang dapat dilihat oleh penerima dan tidak dipahami. File-file ini harus terlihat, atau data harus tertanam dalam file dengan cara yang ditandai sebagai "dapat diabaikan" oleh OS lain. File dan direktori tersembunyi harus digunakan terutama untuk melindungi pengguna, bukan menyimpannya dalam gelap.
Mike Williamson
16

Untuk menjawab pertanyaan terakhir Anda:

bagaimana pengguna mac dapat menghindari kesalahan ini?

Pengguna Mac OS X dapat menginstal utilitas pengarsipan pihak ketiga seperti Keka , lalu katakan untuk tidak menggunakan Resource Forks, lalu atur sebagai kompresor default.


Bagaimana melakukan ini dengan Keka

Katakan pada Keka untuk tidak menggunakan Resource Forks

  1. Buka Keka tanpa file (Dari Launchpad, Spotlight, dll.)
  2. Tekan ⌘ Cmd+ ,untuk membuka Preferensi
  3. Pilih tab Kompresi
    Keka "Compression" tab, dipilih
  4. Periksa "Kecualikan garpu sumber daya Mac (mis .: .DS_Store)"
    Kotak centang bertuliskan "Kecualikan fork sumber daya Mac (mis .: .DS_Store)"

Jadikan Keka sebagai kompresor default

  1. Di jendela Preferensi Keka yang sama
  2. Pilih tab Umum
    Keka "General" tab, dipilih
  3. Klik "Tetapkan Keka sebagai kompresor / uncompressor default" [sic]
    masukkan deskripsi gambar di sini
Ben Leggiero
sumber
1
Ini dapat ditingkatkan dengan menambahkan beberapa informasi pada 2 langkah terakhir, "katakan untuk tidak menggunakan Resource Forks, lalu atur sebagai kompresor default."
Steven C. Howell
@ stvn66 Selesai! Hanya FYI, meskipun, itu biasanya di luar lingkup pertanyaan-pertanyaan ini, itulah sebabnya saya tidak melakukannya pada awalnya.
Ben Leggiero
2
Downvoting, maaf. Saya bukan penggemar menginstal perangkat lunak pihak ke-3 untuk memperbaiki masalah yang dapat diperbaiki dengan perangkat lunak default. Seperti yang ditunjukkan oleh Chris Johnson di atas, zip -dakan menghapus garpu sumber daya dari zipfile. Bahkan, saya pikir jika Anda menggunakan zip di tempat pertama, garpu sumber daya tidak ditambahkan di tempat pertama.
Edward Falk
1
@ EdwardFalk Itu adil! Jawaban ini dimaksudkan untuk memecahkan "Bagaimana saya mendapatkannya untuk selalu berperilaku seperti ini?" masalah, bukan "Bagaimana saya bisa berperilaku seperti ini sekali?" satu.
Ben Leggiero