Mac OS X รายงานขนาดไดเรกทอรีไม่ถูกต้องหรือไม่


17

ใน Finder ฉันสังเกตว่าถ้าฉันทำซ้ำไฟล์. app บางไฟล์ (ในโฟลเดอร์ Applications) Finder จะแสดงว่าไฟล์. app ที่ซ้ำกันนั้นมีขนาดไม่เท่ากับของจริง ความแตกต่างของขนาดไฟล์นี้ไม่ได้เกิดขึ้นสำหรับไฟล์. app ทั้งหมดที่ฉันทำซ้ำ แต่ดูเหมือนว่าไฟล์. app ที่มีขนาดใหญ่กว่ามีโอกาสมากที่ไฟล์ที่ซ้ำกันจะไม่แสดงขนาดเดียวกันกับต้นฉบับ นี่คือตัวอย่างบางส่วน:

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

ตอนนี้ฉันยังใหม่กับ Mac และหลังจากที่ฉันสังเกตเห็นปัญหาความแตกต่างของขนาดไฟล์ฉันพบว่าไฟล์. app ไม่ใช่ไฟล์จริง - เป็นไดเรกทอรีจริงๆ แต่ Finder จะแสดงราวกับว่าเป็นไฟล์ ดังนั้นฉันคิดว่ากระบวนการซ้ำซ้อนอาจไม่ได้คัดลอกเนื้อหาทั้งหมดของไดเรกทอรี. app ดั้งเดิมและอธิบายความแตกต่างใน "ขนาดไฟล์" แต่จากนั้นฉันดาวน์โหลดและติดตั้ง DeltaWalker ซึ่งเป็นเครื่องมือกระจายไฟล์ / โฟลเดอร์และ DeltaWalker กล่าวว่าไดเรกทอรี. app ที่ซ้ำกันนั้นเหมือนกับไดเรกทอรี. app ดั้งเดิมทั้งหมด ดังนั้นกระบวนการทำซ้ำจึงทำงานได้อย่างสมบูรณ์และดูเหมือนว่าจะมีปัญหากับขนาดไฟล์ Finder ของรายงาน

ฉันยังตรวจสอบขนาดของไดเรกทอรีใน Terminal โดยใช้คำสั่ง "du" และนั่นก็แสดงให้เห็นถึงความแตกต่างของขนาดระหว่างไดเรกทอรีต้นฉบับและไดเรกทอรีที่ซ้ำกัน:

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/

นอกจากนี้มันไม่ใช่แค่ไดเรกทอรี. app ฉันทำซ้ำไดเรกทอรี / Developer / Library ของฉันและนี่คือสิ่งที่ du พูดว่า:

du -k /Developer/Library/
320784  /Developer/Library/

du -k /Developer/Library\ copy/
399868  /Developer/Library copy/

ทุกคนสามารถอธิบายได้หรือไม่ว่าเหตุใด Mac OS X จึงไม่รายงานขนาดไดเรกทอรีอย่างถูกต้อง มันเป็นข้อผิดพลาด (ยากที่จะเชื่อในสิ่งที่เรียบง่าย) หรือฉันขาดอะไรบางอย่าง (เป็นผู้ใช้ Mac คนใหม่)?

(ฉันใช้ Mac OS X Lion 10.7.2)


ปรับปรุงในการตอบสนองต่อ elofturtle:

สิ่งที่แปลกที่สุดเกี่ยวกับเรื่องนี้คือ Finder ไม่มีความสอดคล้องกัน ฉันเพิ่งสร้างรายการซ้ำของ GarageBand.app 2 รายการจากนั้นทำซ้ำ 2 รายการจากรายการใดรายการหนึ่ง Finder แสดงซ้ำกันทุกครั้งที่มีขนาดแตกต่างกัน:

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)

โปรดทราบว่า "GarageBand copy 3.app" ใหญ่กว่า "GarageBand copy 2.app" ในขณะที่ "GarageBand copy 4.app" นั้นเล็กกว่า "GarageBand copy 2.app" นั่นจะต้องเป็นข้อบกพร่องใน Finder

นี่คือสิ่งที่ "du -k" พูดเกี่ยวกับพวกเขาทั้งหมด:

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/

อย่างน้อยก็บอกว่ารายการที่ซ้ำกันทั้งหมดมีขนาดเท่ากัน แต่ไม่ได้มีขนาดเท่ากับต้นฉบับ


ฉันมีลางสังหรณ์สิ่งนี้จะลงมาที่ลิงก์และ symlink และหนึ่งหรืออีกอันที่ได้รับการแปลงเป็นสำเนาไฟล์แยกต่างหากเมื่อคุณทำซ้ำชุด. app เหล่านั้น โดยวิธีการที่คุณทำซ้ำพวกเขาภายในปริมาณเดียวกัน (พาร์ทิชัน?)
Spiff

คำตอบของฉันด้านล่างหายไปหรือไม่? ฉันรู้สึกว่ามันเป็นคำตอบที่สมบูรณ์สำหรับคำถามของคุณ แต่ยังไม่มีความคิดเห็นจากคุณ คุณช่วยบอกฉันหน่อยได้ไหม
Tonin

1
ฉันขอโทษสำหรับความล่าช้า. คำตอบของคุณมาหลังจากที่ฉันหมดความสนใจในคำถาม แต่คำตอบของคุณยอดเยี่ยม - ละเอียดมากและแน่นอนตอบคำถามของฉันอย่างเต็มที่ ขอบคุณมากและฉันจะต้องจำไว้ว่า Finder แสดงขนาดที่ไม่บีบอัดแม้ว่าไฟล์ / โฟลเดอร์จะถูกบีบอัดจริง ๆ
pacoverflow

ติดแท็กใหม่นี้ฉันควรติดแท็ก [คัดลอก] หรือไม่ - แต่ด้วยค่าใช้จ่ายของแท็กอื่น ๆ
Arne Stenström

คำตอบ:


13

ความแตกต่างนั้นมาจากเหตุผลที่แตกต่าง: วิธีการนับที่แตกต่างกันเครื่องมือที่แตกต่างกันการบีบอัดและสิ่งที่ดูเหมือนบั๊ก

ความแตกต่างครั้งแรกในขนาดที่คุณเห็นดูเหมือนว่าจะมีข้อผิดพลาดในการค้นหา ขนาดไฟล์ที่แสดงโดย Finder จะถูกคำนวณแบบเรียลไทม์และแคชใน.DS_Storeไฟล์ ด้วยเหตุผลบางอย่างขณะทำสำเนาแอปพลิเคชัน / โฟลเดอร์ขนาดใหญ่ Finder Finder จะคำนวณขนาดของมันในระหว่างกระบวนการคัดลอกและแคชขนาดที่ไม่สมบูรณ์ มันก็แสดงให้เห็นว่าขนาดเป็นสีเทาในหน้าต่าง Finder ความหมายสีเทาการค้นหารู้เนื้อหาที่มีการเปลี่ยนแปลงตั้งแต่มันคำนวณขนาดที่ผ่านมา แต่ก็ยังไม่ได้คำนวณมันยัง

วิธีเดียวที่ฉันพบว่าทำการคำนวณใหม่อย่างถูกต้องขนาดคือการลบ.DS_Storeไฟล์ในโฟลเดอร์แอปพลิเคชันจากนั้นออกจาก Finder (จากการตรวจสอบกิจกรรม) และเปิดใหม่อีกครั้ง (จากไอคอน Dock) หากคุณไม่ลบ.DS_Storeไฟล์ไฟล์นั้นจะยังคงเป็นสีเทา อาจจะรอสักครู่ (ชั่วโมงวันรีบูท ... ) จะทำให้ Finder ทำเอง

หลังจากนั้นคุณจะเห็นว่าขนาดทั้งหมดที่รายงานโดย Finder นั้นเหมือนกัน

ดังนั้นใช่ดูเหมือนข้อผิดพลาด Finder อย่างน้อยใน OSX Lion (ทดสอบกับ 10.7.4 ที่นี่, Finder เวอร์ชัน 10.7.3) คุณยังสามารถดูชุดข้อความนี้ซึ่งรายงานพฤติกรรมประเภทเดียวกัน

จากนั้นลองพิจารณาduเครื่องมือ ตอนแรกฉันคิดว่าความแตกต่างที่เราเห็นสามารถอธิบายได้โดยความแตกต่างระหว่างขนาดตรรกะและขนาดจริงของรายการที่ถูกคัดลอก ขนาดโลจิคัลคือขนาดจริงของไอเท็มหมายถึงข้อมูลทุกบิตที่ถูกรวมเข้าด้วยกัน ขนาดฟิสิคัลคือขนาดของรายการบนดิสก์ที่แต่ละบิตข้อมูลถูกเขียนบนเซกเตอร์ดิสก์

ตัวอย่างเช่นไฟล์ที่มีอักขระตัวเดียวจะลงท้ายด้วยขนาดโลจิคัล 1 ไบต์ แต่ขนาดฟิสิคัล 512 ไบต์หรือแม้กระทั่ง 4096 ไบต์เมื่อเขียนลงดิสก์จริง ขนาดฟิสิคัลมักใหญ่กว่าขนาดโลจิคัล (และขึ้นอยู่กับขนาดเซกเตอร์ / บล็อกจริงของดิสก์หรือระบบไฟล์) นี่คือการอธิบายรายละเอียดเพิ่มเติมในหัวข้ออื่นนี้ ขนาดโลจิคัลอาจใหญ่กว่าในกรณีของไฟล์ที่กระจัดกระจายแต่ HFS + ดูเหมือนจะไม่รองรับคุณสมบัติดังกล่าว

duแสดงขนาดทางกายภาพเท่านั้น (และคุณสามารถบอกได้ว่า BLOCKSIZE คืออะไร) คุณจะเห็นว่าขนาดที่รายงานโดยduนั้นใหญ่กว่าเสมอ (หรือยิ่งใหญ่กว่าเดิม) เหมือนเดิม นี่เป็นเพราะระบบไฟล์และการแตกแฟรกเมนต์พื้นที่ดิสก์ เมื่อคุณคัดลอกไฟล์ (จริง ๆ แล้วที่นี่เป็นกลุ่มของไฟล์เนื่องจาก Application เป็นไดเรคทอรี) มีการจัดสรรเซกเตอร์ใหม่บนดิสก์และเมื่อมีการแตกแฟรกเมนต์จำนวนบล็อกที่ใช้มักจะสูงกว่าของรายการดั้งเดิม บางคนเรียกว่าไฟล์หย่อน

ตอนนี้กลับไปที่ Finder หากคุณเปิดหน้าต่างรับข้อมูลของแอปพลิเคชันที่คุณทำซ้ำคุณจะเห็นว่า Finder กำลังรายงานทั้งขนาดตรรกะและขนาดจริงของรายการที่คุณเลือก ซึ่งทำให้รู้สึก คุณยังสามารถเปรียบเทียบขนาดทางกายภาพที่รายงานโดย Finder และอีกหนึ่งรายงานที่รายงานโดยduถ้าคุณทำคณิตศาสตร์สักเล็กน้อย

ทำไมต้องทำคณิตศาสตร์ เนื่องจาก Finder แสดงขนาดไฟล์เป็น kB, MB หรือ GB ซึ่งduรายงานเป็น kiB, MiB หรือ GiB เหล่านี้คือคำนำหน้าฐานสองของ IECซึ่งควรใช้ในการคำนวณและแสดงหน่วยของข้อมูลดิจิทัล

แต่ที่จริงฉันไม่แน่ใจว่า File Slack เกี่ยวข้องที่นี่มีอย่างอื่น ปริมาณ HFS + ช่วยให้การบีบอัดทำโปร่งใสและ Apple ใช้สิ่งนั้นสำหรับรายการดั้งเดิมที่ติดตั้งโดยระบบปฏิบัติการ จากนั้นเมื่อไฟล์ถูกคัดลอกโดยใช้เครื่องมือมาตรฐานการบีบอัดจะไม่ถูกใช้อีกต่อไป หากคุณต้องการบีบอัดไฟล์เหล่านั้นคุณต้องใช้dittoคำสั่งแทนcpการกระทำของ Finder นี่คือคำอธิบายในการตรวจสอบนี้

นี่คือผลลัพธ์ของการคัดลอก iTunes.app โดยใช้เทคนิคต่าง ๆ คุณจะเห็นว่าเหมือนกันทำให้แอปพลิเคชั่นมีขนาดเท่ากันรักษาการบีบอัดที่cpไม่ได้ และคุณสามารถลบไบนารีสำหรับส่วนโค้งที่คุณไม่ต้องการแล้วลดขนาดทั้งหมด):

antoine@amarante:/Applications$ du -ms iTunes.app/
281 iTunes.app/
antoine@amarante:/Applications$ cp -a iTunes.app/ iTunes-copy.app/
antoine@amarante:/Applications$ ditto iTunes.app/ iTunes-ditto.app
antoine@amarante:/Applications$ ditto --arch x86_64 iTunes.app/ iTunes-64.app
antoine@amarante:/Applications$ du -ms iTunes*
236 iTunes-64.app
289 iTunes-copy.app
281 iTunes-ditto.app
281 iTunes.app

ขอขอบคุณที่ @DanPritts สำหรับคำตอบของเขาในโพสต์ที่สมบูรณ์ของฉัน


มันเป็นวิธีอื่น ๆ หรือไม่? Finder แสดงคำนำหน้า SI จริง
Daniel Beck

ไฟล์ที่กระจัดกระจายจะไม่ ( ไม่รวมกลุ่มกระจัดกระจาย / ภาพของ OS X) จะมีเหตุผลมากกว่าขนาดไฟล์ทางกายภาพ?
Daniel Beck

ใช่คุณพูดถูกใช่ Finder แสดงคำนำหน้า SI และduIEC ฉันจะแก้ไขโพสต์ของฉัน
Tonin

@DanielBeck ไฟล์กระจัดกระจายในทางทฤษฎีอาจเป็นได้ แต่ไฟล์ประเภทใดที่แอปพลิเคชั่น OSX จะมีเป็นไฟล์แบบกระจาย ตามวิกิพีเดียไฟล์ที่กระจายไม่ได้รับการสนับสนุนใน HFS +
Tonin

ย่อหน้านั้นอ่านเหมือนว่ามันใช้งานได้ทั่วไป ( ขึ้นอยู่กับขนาดเซกเตอร์ / บล็อกที่แท้จริงของดิสก์หรือระบบไฟล์ ) ดังนั้นนั่นเป็นสาเหตุที่ฉันต้องการพูดถึงเรื่องนั้น
Daniel Beck

1

เป็นข้อบกพร่อง / ข้อบกพร่องที่น่ากลัวใน OS X วิธีที่ง่ายที่สุดในการดูคือการทำซ้ำชุดแอปพลิเคชันขนาดใหญ่จากนั้นแสดงเนื้อหาและลบไฟล์ขนาดใหญ่ออกจากภายใน พื้นที่จะไม่สามารถกู้คืนได้ ไฟล์ยังคงมีขนาดใหญ่ ตัวอย่างเช่นหากคุณมีกลุ่มแอปพลิเคชัน 3.5GB คุณจะแสดงเนื้อหาจากนั้นลบ 3GB ออกจากนั้นคุณควรมีแอปพลิเคชันที่มีขนาดไฟล์ 500MB คุณไม่ต้องการ. มันจะยังคงเป็น 3.5GB


ในการคำนวณขนาดใหม่ให้เลือกคำนวณขนาดทั้งหมดในตัวเลือกมุมมองโฟลเดอร์ ดู apple.stackexchange.com/a/227173/156178
asmaier

0

นี่เป็นเพียงการคาดเดา แต่ฉันเห็นความเป็นไปได้สองประการ:

  1. ข้อมูลบางส่วนถูกลบ แต่ไม่ได้ถูกจัดสรรคืนในต้นฉบับและจะไม่ถูกคัดลอก แต่มันแสดงให้เห็นในการค้นหาการใช้งานดิสก์บางอย่าง แต่ไม่ใช่อื่น ๆ (พารามิเตอร์ที่แตกต่างกันที่มอบให้กับ du หรือสิ่งที่ OS X ใช้ภายใน)
  2. ข้อมูลบางอย่างได้รับการเชื่อมโยงไปยังตำแหน่งเดิมและสิ่งนี้มีผลต่อขนาดการรับรู้ในเครื่องมือต่าง

หาก (1) คุณอาจได้ผลลัพธ์ที่แตกต่างกันโดยทำสำเนาที่สามและเปรียบเทียบสำเนา


ขออภัยไม่สามารถรับบล็อกรหัสหลายบรรทัดเพื่อดูในความคิดเห็นได้ดังนั้นฉันจะลองแก้ไขโพสต์ดั้งเดิมของฉัน
pacoverflow

ฉันไม่ได้คาดหวังว่าการซ้ำซ้อนจะใหญ่กว่าต้นฉบับ: - / ดูเหมือนว่าน่าจะเป็นรายงานข้อผิดพลาด แต่ฉันเดิมพันโอกาสที่จะได้รับข้อเสนอแนะใด ๆ หวังว่าพวกเขาจะดูมัน
elofturtle

0

ประการแรกคุณต้องระวังว่าไฟล์ Mac. app นั้นเป็นไดเรกทอรีจริงไม่ใช่ไบนารีที่คอมไพล์เช่นไฟล์ Windows. exe เครื่องมือค้นหาเพียงซ่อนข้อเท็จจริงนี้จากคุณเพื่อเรียกโฟลเดอร์ * .app

เช่น (จาก Terminal)

# cd /Applications/Calculator.app
# ls
Contents/

ฉันค่อนข้างแน่ใจว่าสิ่งที่เกิดขึ้นคือตัวค้นหา / รับข้อมูลกำลังใช้ฮิวริสติกแบบไม่ค่อยฉลาดเพื่อคำนวณขนาดของโฟลเดอร์. app ซึ่งหมายความว่าไม่จำเป็นต้องระบุทุกโฟลเดอร์ย่อยและไฟล์และรวมขนาดทั้งหมดเหล่านั้นเข้าด้วยกัน

ฉันเดาว่าการประมาณการในการคัดลอกนั้นถูกต้องเพราะเมื่อไม่นานมานี้ OSX จะต้องตรวจสอบทุกไฟล์ในขณะที่คุณทำสำเนาในขณะที่ต้นฉบับ OSX อาจไม่ต้องทำเช่นนั้น (เช่นติดตั้งจากโรงงาน)


-1

ฉันมีปัญหากับ Home Directory ของฉันเมื่อฉันย้ายมันไปยัง HDD ภายในหลังจากติดตั้ง Yosemite บน SSD เมื่อใช้ 'รับข้อมูล' จะรายงานขนาดที่ไม่ถูกต้องเพียง 8GB แม้ว่าจะแสดงขนาดที่ถูกต้องของ 240GB ในแถบสถานะของ Finder ฉันแก้ไขโดยคลิกรับข้อมูลในโฟลเดอร์ผู้ใช้ซึ่งคำนวณอย่างถูกต้องและแก้ไขขนาดที่ไม่ถูกต้องซึ่งรายงานโดย Home Directory

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.