Bir dizin nasıl sıkıştırılır


21

Sık sık, bazı uygulamalar çılgınca çalışır ve bir dizini çok miktarda dosya ile doldurur. Bir hatayı düzelttikten ve dosyaları temizlediğimizde, içinde sadece 20-30 dosya olsa da, dizin büyük (> 50MB) kalır.

Bir dizini yeniden oluşturmak zorunda kalmadan sıkıştıran bir komut var mı?

Bonus puanları: çok büyük bir boş dizin o dizinin erişim performansını etkiler mi? Öyle sanıyorum, ama belki de canını sıkmaya değmez. lsBöyle bir dizinde yapmak daha yavaş görünüyor .


Böyle bir şey olduğunu sanmıyorum (ama elbette tamamen yanlış olabilirim). Belki bazı dosya sistemine özgü araçlar olsa da - hangi FS'yi kullanıyorsunuz?
Mat,

ext3, ancak bu sorunu unix dünyasında ele aldığım çoğu dosya sisteminde gördüm. Ben de böyle bir araç olduğunu sanmıyorum ama yanlış olduğunu ispatlamak istiyorum.
Mathieu Longtin

4
Sorunuzu "ext3" olarak etiketledim, çünkü bu soru çok dosya sistemine özgüdür. Ext3'ün cevabını bilmiyorum (dizini küçültmek için dizini yeniden oluşturmanız gerektiğinden şüpheleniyorum) ama bir zorlamaya çalıştınız fsckmı? ext3'ün fsckbir "En iyi duruma getirme dizini" şifresi var. Ne yaptığını bilmiyorum ama belki de çok büyük dizinleri küçültür? Her neyse, bir veri noktası FWIW olarak, xfs, onlardan dosya kaldırılmış dizinleri otomatik olarak tüketir.
Celada

Şans eseri açık dosyaları sildiniz mi?
Karlson

1
BSD'lerde ve Mac HFS'de bulunan ufs, aynı zamanda anında dizinleri daraltır. Ext3'ün olmadığını öğrenince şaşırdım. ext4 de öyle görünmüyor.
Kyle Jones

Yanıtlar:


10

Sen çalıştırmak e2fsck -Dkaldırılan dosya sistemi üzerinde.


1
Daha az yıkıcı bir şey umuyordum.
Mathieu Longtin

1
@MathieuLongtin, Ayrıca her şeyi yeni bir dizine taşıyabilir, eskisini silebilir ve yenisini yeniden adlandırabilirsiniz.
psusi

Bu numarayı biliyordum, ancak dizini geçerli bir çalışma dizini olarak kullanarak işlemleri karıştırabilir.
Mathieu Longtin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.