วิธีกระชับไดเรกทอรี


21

บ่อยครั้งที่แอปพลิเคชั่นบางตัวรันและเติมไดเรกทอรีด้วยไฟล์จำนวนมาก เมื่อเราแก้ไขข้อผิดพลาดและล้างไฟล์ไดเรกทอรีจะยังคงมีขนาดใหญ่ (> 50MB) แม้ว่าจะมีไฟล์เพียง 20-30 ไฟล์เท่านั้น

มีคำสั่งบางอย่างที่บีบอัดไดเรกทอรีโดยไม่ต้องสร้างใหม่หรือไม่?

คะแนนโบนัส: ไดเรกทอรีว่างขนาดใหญ่มีผลต่อประสิทธิภาพการเข้าถึงของไดเรกทอรีนั้นหรือไม่ ฉันสมมติว่ามันทำ แต่อาจจะไม่คุ้มค่าที่จะรบกวน ดูเหมือนว่าช้ากว่าที่จะทำlsในไดเรกทอรีดังกล่าว


ฉันไม่คิดว่ามีสิ่งนั้น (แต่แน่นอนฉันอาจผิดทั้งหมด) บางทีเครื่องมือเฉพาะระบบไฟล์บางอย่าง - คุณใช้ FS อะไรอยู่?
จ้า

ext3 แต่ฉันเห็นว่ามีปัญหาเกี่ยวกับระบบไฟล์ส่วนใหญ่ที่ฉันจัดการในโลกยูนิกซ์ ฉันไม่คิดว่าจะมีเครื่องมือเช่นนั้น แต่ฉันต้องการพิสูจน์ว่าผิด
Mathieu Longtin

4
ฉันติดแท็กคำถามของคุณ "ext3" เนื่องจากคำถามนี้เฉพาะระบบไฟล์ ฉันไม่ทราบคำตอบสำหรับ ext3 (ฉันสงสัยว่าคุณต้องสร้างไดเรกทอรีใหม่เพื่อให้มันหดตัวลง) แต่คุณได้ลองบังคับfsckหรือไม่? ext3's fsckมีรหัสผ่าน "การเพิ่มประสิทธิภาพไดเรกทอรี" ฉันไม่รู้ว่ามันทำอะไร แต่บางทีมันอาจทำให้ไดเรกทอรีที่เล็กเกินไปย่อ อย่างไรก็ตามในฐานะที่เป็นจุดข้อมูล FWIW ไดเรกทอรี xfs autoshrinks ที่มีการลบไฟล์ออกจากพวกเขา
Celada

คุณมีโอกาสลบไฟล์ที่เปิดอยู่หรือไม่
Karlson

1
ufs บน BSD และ Mac HFS ทั้งย่อขนาดไดเรกทอรีทันที ฉันประหลาดใจที่รู้ว่า ext3 ไม่ได้ ext4 ดูเหมือนจะไม่ทำเช่นนั้น
Kyle Jones

คำตอบ:


10

คุณรันe2fsck -Dบนระบบไฟล์ที่ไม่ได้ประกอบเข้า


1
ฉันหวังว่าจะมีบางสิ่งที่จะก่อกวนน้อยลง
Mathieu Longtin

1
@MathieuLongtin คุณสามารถย้ายทุกอย่างไปยังไดเรกทอรีใหม่ลบอันเก่าแล้วเปลี่ยนชื่อใหม่กลับมา
psusi

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