Di Finder, saya perhatikan bahwa jika saya menduplikasi beberapa file .app (dalam folder Aplikasi), Finder akan menunjukkan bahwa file .app duplikat tidak berukuran sama dengan aslinya. Perbedaan ukuran file ini tidak terjadi untuk semua file .app yang saya duplikat, tetapi sepertinya semakin besar file .app, semakin besar kemungkinan bahwa duplikat tidak akan menampilkan ukuran yang sama seperti aslinya. Berikut ini beberapa contohnya:
GarageBand.app - 381.7 MB
GarageBand copy.app - 373.2 MB
iMovie.app - 695.3 MB
iMovie copy.app - 635.4 MB
Install Xcode.app - 1.81 GB
Install Xcode copy.app - 1.57 GB
Sekarang saya baru untuk Mac, dan setelah saya perhatikan masalah perbedaan ukuran file ini, saya menemukan bahwa file .app sebenarnya bukan file - mereka benar-benar direktori, tetapi Finder menampilkannya seolah-olah mereka adalah file. Jadi saya pikir mungkin proses duplikasi tidak menyalin semua isi direktori .app asli dan yang menjelaskan perbedaan dalam "ukuran file". Tapi kemudian saya mengunduh dan menginstal DeltaWalker, yang merupakan alat diff file / folder, dan DeltaWalker mengatakan bahwa direktori .app duplikat persis sama dengan direktori .app yang asli. Jadi proses duplikasi bekerja dengan sempurna, dan karena itu tampaknya menjadi masalah dengan ukuran file pelaporan Finder.
Saya juga memeriksa ukuran direktori di Terminal, menggunakan perintah "du", dan itu juga menunjukkan perbedaan dalam ukuran antara direktori asli dan duplikat:
du -k /Applications/GarageBand.app/
212868 /Applications/GarageBand.app/
du -k /Applications/GarageBand\ copy.app/
397880 /Applications/GarageBand copy.app/
du -k /Applications/iMovie.app/
629644 /Applications/iMovie.app/
du -k /Applications/iMovie\ copy.app/
700500 /Applications/iMovie copy.app/
du -k /Applications/Install\ Xcode.app/
1771864 /Applications/Install Xcode.app/
du -k /Applications/Install\ Xcode\ copy.app/
1772228 /Applications/Install Xcode copy.app/
Juga, ini bukan hanya direktori .app. Saya menggandakan direktori / Pengembang / Perpustakaan saya, dan inilah yang dikatakan du:
du -k /Developer/Library/
320784 /Developer/Library/
du -k /Developer/Library\ copy/
399868 /Developer/Library copy/
Jadi adakah yang bisa menjelaskan mengapa Mac OS X tampaknya tidak melaporkan ukuran direktori dengan benar? Apakah ini bug (sulit dipercaya karena sesuatu yang begitu sederhana), atau apakah saya melewatkan sesuatu (menjadi pengguna Mac baru)?
(Saya menjalankan Mac OS X Lion 10.7.2)
PEMBARUAN dalam menanggapi elofturtle:
Apa yang paling aneh tentang ini adalah bahwa Finder tidak memiliki konsistensi. Saya baru saja membuat 2 duplikat dari GarageBand.app, dan kemudian membuat 2 duplikat dari salah satu duplikat. Finder menampilkan setiap duplikat tunggal dengan ukuran berbeda:
GarageBand.app - 381.7 MB
GarageBand copy.app - 357.6 MB (duplicate of GarageBand.app)
GarageBand copy 2.app - 353.9 MB (duplicate of GarageBand.app)
GarageBand copy 3.app - 378.2 MB (duplicate of GarageBand copy 2.app)
GarageBand copy 4.app - 329.1 MB (duplicate of GarageBand copy 2.app)
Perhatikan juga bahwa "GarageBand copy 3.app" lebih besar dari "GarageBand copy 2.app", sedangkan "GarageBand copy 4.app" lebih kecil dari "GarageBand copy 2.app". Itu pasti bug di Finder.
Inilah yang dikatakan "du -k" tentang mereka semua:
212868 /Applications/GarageBand.app/
397880 /Applications/GarageBand copy.app/
397880 /Applications/GarageBand copy 2.app/
397880 /Applications/GarageBand copy 3.app/
397880 /Applications/GarageBand copy 4.app/
Setidaknya dikatakan bahwa semua duplikat memiliki ukuran yang sama, tetapi tidak sama dengan aslinya.
sumber
Jawaban:
Perbedaan datang dari alasan yang berbeda: cara penghitungan yang berbeda, alat yang berbeda, kompresi dan apa yang tampak seperti bug.
Perbedaan pertama dalam ukuran yang Anda lihat tampaknya adalah bug di Finder . Ukuran file yang ditunjukkan oleh Finder entah bagaimana dihitung secara real time dan di-cache dalam
.DS_Store
file. Untuk beberapa alasan, saat menduplikasi aplikasi / folder besar, Finder menghitung ukurannya selama proses penyalinan dan menyimpan cache yang ukurannya tidak lengkap. Itu kemudian menunjukkan ukuran yang abu-abu di jendela Finder, abu-abu yang berarti Finder tahu konten telah berubah sejak itu perhitungan ukuran terakhir tetapi belum dihitung ulang .Satu-satunya cara yang saya temukan untuk membuatnya menghitung ulang ukurannya dengan benar adalah dengan menghapus
.DS_Store
file di folder Aplikasi, kemudian berhenti Finder (dari Monitor Aktivitas misalnya) dan meluncurkan kembali lagi (dari Ikon Dock). Jika Anda tidak menghapus.DS_Store
file, itu masih tetap abu-abu. Mungkin menunggu beberapa saat (jam, hari, reboot, ...) akan membuat Finder melakukannya sendiri.Setelah itu, Anda akan melihat bahwa semua ukuran yang dilaporkan oleh Finder adalah sama.
Jadi ya, sepertinya bug Finder, setidaknya di OSX Lion (diuji dengan 10.7.4 di sini, Finder versi 10.7.3). Anda juga dapat melihat utas ini yang melaporkan perilaku yang sama.
Lalu, mari kita pertimbangkan
du
alatnya. Pada awalnya, saya pikir perbedaan yang kita lihat dapat dijelaskan oleh perbedaan antara ukuran logis dan fisik item yang disalin. Ukuran logis adalah ukuran sebenarnya dari item, artinya setiap bit informasi yang dikandungnya dijumlahkan bersama. Ukuran fisik adalah ukuran item pada disk, di mana setiap bit informasi ditulis pada sektor disk.Sebagai contoh, sebuah file yang berisi satu karakter akan berakhir dengan ukuran logis 1 byte, tetapi 512 byte atau bahkan 4096 byte ukuran fisik ketika sebenarnya ditulis ke disk. Ukuran fisik biasanya lebih besar dari ukuran logis (dan tergantung pada ukuran sektor / blok aktual dari disk atau sistem file). Ini dijelaskan lebih detail di utas lainnya ini . Ukuran logis bisa lebih besar dalam hal file jarang , tetapi HFS + tampaknya tidak mendukung fitur seperti itu.
du
hanya menunjukkan ukuran fisik (dan Anda dapat mengetahui apa itu BLOCKSIZE). Anda dapat melihat bahwa ukuran yang dilaporkandu
selalu lebih besar (atau, sangat, sama) dengan aslinya. Ini karena sistem file dan fragmentasi ruang disk. Ketika Anda menyalin file (sebenarnya di sini banyak file, karena Aplikasi adalah direktori) sektor-sektor baru dialokasikan pada disk dan, ketika terjadi fragmentasi , jumlah blok yang digunakan biasanya lebih tinggi daripada item aslinya. Beberapa orang menyebutnya File Slack .Sekarang, kembali ke Finder. Jika Anda membuka jendela get info dari Aplikasi yang Anda duplikasi, Anda akan melihat bahwa Finder sebenarnya melaporkan ukuran Logical dan Physical dari item yang Anda pilih. Yang kemudian masuk akal. Anda bahkan dapat membandingkan ukuran fisik yang dilaporkan oleh Finder dan yang dilaporkan oleh
du
jika Anda melakukan sedikit matematika.Mengapa melakukan matematika? Karena Finder menunjukkan ukuran file dalam kB, MB atau GB di mana
du
melaporkannya dalam kiB, MiB atau GiB. Itu adalah awalan biner IEC yang harus digunakan untuk menghitung dan menampilkan unit informasi digital.Tapi, sebenarnya, saya tidak yakin File Slack terlibat di sini, ada hal lain. Volume HFS + memungkinkan kompresi , dilakukan secara transparan, dan Apple menggunakannya untuk item asli yang diinstal oleh OS. Kemudian, ketika file disalin menggunakan alat standar, kompresi tidak digunakan lagi (sebagai default, agar kompatibel ke belakang). Jika Anda ingin tetap melakukan kompresi pada file-file itu, Anda perlu menggunakan
ditto
perintah sebagai ganticp
atau tindakan Finder apa pun. Ini dijelaskan dalam ulasan ini .Berikut ini adalah hasil menyalin iTunes.app menggunakan teknik yang berbeda. Anda akan melihat bahwa ditto membuat Aplikasi persis ukuran yang sama, menjaga kompresi, di mana
cp
tidak. Dan Anda bahkan dapat menghapus biner untuk lengkungan yang tidak Anda butuhkan, kemudian mengurangi seluruh ukuran):Terima kasih kepada @DanPritts atas jawabannya di pos komplementer saya .
sumber
du
IEC, saya akan memperbaiki posting saya.Ini adalah cacat / bug yang mengerikan di OS X. Cara termudah untuk melihatnya adalah menduplikasi bundel aplikasi besar, kemudian tunjukkan konten dan hapus file besar dari dalam. Ruang tidak akan pulih. File tersebut masih besar. Misalnya, jika Anda memiliki bundel aplikasi 3.5GB, Anda menunjukkan konten, kemudian menghapus 3GB dari itu, Anda sekarang harus memiliki aplikasi dengan ukuran file 500MB. Anda tidak akan. Ini akan tetap 3.5GB.
sumber
Ini pada dasarnya adalah dugaan, tetapi saya melihat dua kemungkinan:
Jika (1) Anda mungkin harus mendapatkan hasil yang berbeda dengan membuat salinan ketiga dan membandingkan salinan.
sumber
Pertama, Anda perlu menyadari bahwa file Mac .app sebenarnya adalah Direktori , bukan kompilasi binari seperti file Windows .exe. Finder hanya menyembunyikan fakta ini dari Anda untuk folder bernama * .app.
mis. (dari Terminal)
Saya cukup yakin apa yang terjadi adalah bahwa Finder / Get Info menggunakan heuristik yang tidak terlalu pintar untuk menghitung ukuran folder .app. Ini berarti tidak perlu menghitung setiap subfolder dan file dan menambahkan bersama semua ukuran itu.
Dugaan saya adalah bahwa perkiraan pada salinan itu benar karena OSX baru-baru ini harus memeriksa setiap file di dalamnya ketika Anda menyalin, sedangkan pada aslinya, OSX mungkin tidak harus melakukannya (misalnya dengan instalasi pabrik)
sumber
Saya punya masalah dengan Direktori Rumah saya setelah saya memindahkannya ke HDD internal setelah menginstal Yosemite pada SSD. Saat menggunakan 'Get Info', ia melaporkan ukuran yang salah hanya 8GB, meskipun menunjukkan ukuran yang benar 240GB di bilah status Finder. Saya memperbaikinya dengan mengklik Dapatkan Info di folder Pengguna, yang kemudian dihitung dengan benar dan memperbaiki ukuran yang salah dilaporkan oleh Home Directory.
sumber