Linux'ta nerede disk alanı gitti?


532

Linux sistemlerini yönetirken genellikle bir bölüm dolduktan sonra suçluyu bulmakta zorlanıyorum. Normalde kullanıyorum, du / | sort -nrancak büyük bir dosya sisteminde herhangi bir sonuç alınmadan uzun zaman alıyor.

Ayrıca, bu kötü suçluyu vurgulayarak genellikle başarılı olur ama sık sık kendimi başvurmadan buldum duolmadan sort çıkışı üzerinden trol zorunda ardından daha ince vaka ve.

Çok az sayıda sistemi yönetmem gerektiğinden ve yeni bir yazılım yüklemem zor bir iştir (özellikle de disk alanı bittiğinde!) Çünkü standart Linux komutlarına dayanan bir komut satırı çözümünü tercih ederim.


1
@Bart, burada yayınları geliştirmek için zaman ayırdığınız için teşekkür eder, ancak etiket eklerken biraz daha özen göstermenizi isteyebilir miyim? Etiketler görünürlük için değil, soruyu açıklar. Disk etiketi burada uygun değildir (etiket açıklamasına bakın) ve bu önerilen düzenlemeye eklediğiniz etiketlerin en az ikisi orada uygun değildi (Kali Debian değil ve PPA'lar yok).
Stephen Kitt

Yanıtlar:


614

Deneyin ncdu, mükemmel bir komut satırı disk kullanımı analizörü:

görüntü tanımını buraya girin


6
Genelde, basit bir sorunu çözmek için bir şeyler yüklemekten istenmemekten nefret ediyorum, ama bu harika.
gwg

14
sudo apt install ncduUbuntu üzerinde kolayca alır. Harika
Orion Edwards

10
Muhtemelen hangi dosya sisteminin yetersiz kaldığını biliyorsunuzdur. Bu durumda ncdu -xsadece taranan diziyle aynı dosya sistemindeki dosyaları ve dizinleri saymak için kullanabilirsiniz .
Luke Cousins,

7
en iyi cevap. ayrıca: sudo ncdu -rx /SADECE root area drive'daki en büyük dizinleri / dosyaları temiz bir şekilde okumalıdır. ( -r= salt okunur, -x = aynı dosya sisteminde kalın (yani: diğer dosya sistemi bağlarını
geçmeyin

5
Ncdu'yu yükleyemediğim çok az yer var
Chris

338

Doğruca gitme du /. dfSize zarar veren bölümü bulmak için kullanın ve sonra dukomutları deneyin .

Denemekten hoşlandığım biri

# U.S.
du -h <dir> | grep '[0-9\.]\+G'
# Others
du -h <dir> | grep '[0-9\,]\+G'

çünkü "insan tarafından okunabilir biçimde" boyutları basıyor. Gerçekten küçük bölmelere sahip değilseniz, gigabayttaki dizinleri okumak, istediğiniz şeyler için oldukça iyi bir filtredir. Bu size biraz zaman kazandıracak, ancak kontenjan belirlemediğiniz sürece, sanırım böyle olacak.

@Jchavannes, yorumlarda da belirtildiği gibi, çok fazla yanlış pozitif bulursanız, ifade daha hassas olabilir. Bunu daha iyi yapan öneriyi dahil ettim, ancak hala yanlış pozitifler var, bu yüzden sadece tradeoflar var (daha basit ifade, daha kötü sonuçlar; daha karmaşık ve daha uzun ifade, daha iyi sonuçlar). Çıktınızda çok az sayıda dizin varsa, regex'inizi uygun şekilde ayarlayın. Örneğin,

grep '^\s*[0-9\.]\+G'

daha doğrudur (<1GB dizin listelenmeyecektir).

Eğer varsa yapmak kota var kullanabilirsiniz

quota -v

Diski tutan kullanıcıları bulmak için


2
Bu çok hızlı, basit ve pratik
zzapper

24
grep '[0-9]G'çok sayıda yanlış pozitif içeriyordu ve ayrıca ondalık sayıları da ihmal etti. Bu benim için daha iyi çalıştı:sudo du -h / | grep -P '^[0-9\.]+G'
jchavannes

1
Gerçekten büyük dizinleriniz varsa, [GT]yerine sadece isteyeceksinizG
Vitruvius

1
Dosya sistemindeki tüm dizinlerde (lazily) disk kullanımını sürekli izleyecek bir araç var mı? Bir web kullanıcı arayüzüne yönlendirilebilecek bir şey? Tercihen yumuşak gerçek zamanlı bilgi.
CMCDragonkai

20
du -h | sort -hr | head
Kullanmayı

104

İlk bakış için, “özet” görünümünü kullanın du:

du -s /*

Etki, her bir argümanın boyutunu, yani yukarıdaki durumdaki her kök klasörü yazdırmaktır.

Dahası, hem GNUdu ve BSDdu (derinlik kısıtlaması olabilir ama POSIX du! Yapamaz ):

  • GNU (Linux,…):

    du --max-depth 3
  • BSD (macOS,…):

    du -d 3
    

Bu , çıkış ekranını derinlik 3 ile sınırlandırır . Hesaplanan ve görüntülenen boyut hala tam derinliğin toplamıdır. Ancak buna rağmen, ekran derinliğini kısıtlamak hesaplamayı hızlandırır.

Yararlı bir diğer seçenek -h(hem GNU hem de BSD kelimeleri, ancak bir kez daha, sadece duinsan tarafından okunabilen) çıktı için ( sadece KiB, MiB vb . Kullanarak ).


23
duhakkında şikayet ederseniz yerine -ddeneyin --max-depth 5.
ReactiveRaven

8
Harika bir cevap. Benim için doğru görünüyor. Ben önermek du -hcd 1 /directory. -h insan tarafından okunabilir, c için toplam ve d için derinlik.

Ben kullanacağımdu -hd 1 <folder to inspect> | sort -hr | head
jonathanccalixto

du --max-depth 5 -h /* 2>&1 | grep '[0-9\.]\+G' | sort -hr | headİzni reddedildi
srghma

49

Aşağıdaki komutu kullanarak da çalıştırabilirsiniz du:

~# du -Pshx /* 2>/dev/null
  • -sSeçenek özetler ve görüntüler her görüşün toplam.
  • h Mio, Gio vb.
  • x = bir dosya sisteminde kalın (çok faydalı).
  • P = sembolik bağlantıları izlemeyin (örneğin dosyaların iki defa sayılmasına neden olabilir).

Dikkatli olun, /rootdizin gösterilmeyecek, bunu elde etmek ~# du -Pshx /root 2>/dev/nulliçin koşmalısınız (bir kez, /rootdizimin dolduğunu göstermemek için çok uğraştım).

Düzenleme: Düzeltilmiş seçenek -P


2
du -Pshx .* * 2>/dev/null+ gizli / sistem dizinleri
Mykhaylo Adamovych

27

Dosya sistemindeki en büyük dosyaları bulmak her zaman uzun zaman alacaktır. Tanım gereği, büyük dosyalar arayan tüm dosya sistemlerini geçmeniz gerekir. Tek çözüm muhtemelen dosyanın önceden hazır olması için tüm sistemlerinizde bir cron işi çalıştırmaktır.

Başka bir şey, du 'nun x seçeneği du' nun bağlama noktalarını takip etmesini diğer dosya sistemlerinde tutmakta kullanışlıdır. yani:

du -x [path]

Genellikle çalıştırdığım tam komut:

sudo du -xm / | sort -rn > usage.txt

Bu -maraç geri dönüş megabayt sort -rnolarak sonuçlanır ve sonuçları önce en büyük sayıya göre sıralar. Sonra bir editörde use.txt dosyasını açabilirsiniz ve en büyük klasörler (/ ile başlayan) en üstte olacaktır.


3
-xBayrağı işaret ettiğiniz için teşekkürler !
SamB

1
"en büyüğünü bulmak uzun zaman alır .." -> Eh, buna bağlı, ancak aynı fikirde olma eğiliminde değil: ncdu- en azından daha hızlı duveya find(derinlik ve argümanlara bağlı olarak) gibi hizmetlerle uzun sürmez ..
bshea

Kök olmamayı tercih ettiğim için dosyanın yazıldığı yere adapte olmak zorunda kaldım:sudo du -xm / | sort -rn > ~/usage.txt
Bruno

20

Ben her zaman kullanıyorum du -sm * | sort -n, bu da çalışma dizininin alt dizinlerinin ne kadarının mebibytes'te kullanıldığını gösteren bir liste veriyor.

Ayrıca WinDirStat'ın Windows'ta yaptıklarına benzer bir "boyut görünümü" modu olan Konqueror'u da deneyebilirsiniz: Size hangi dosyaların / dizinlerin alanınızın çoğunu kullandığına dair hayati bir sunum sunar.

Güncelleme: daha yeni sürümlerde, du -sh * | sort -hinsan tarafından okunabilen dosya boyutlarını gösterecek ve bunlara göre sıralayacak olanları da kullanabilirsiniz. (sayılar K, M, G, ... ile eklenir)

KDE3'ün Konqueror dosyasının alternatifine bakmak isteyenler için dosya boyutu görünümü, o kadar hoş olmasa da, göze bakar.


Bu sadece Konqueror 3.x olsa da - dosya boyutu görünümü hala KDE4'e kaydedilmedi.

'du -sh * | sort -h 'Linux (Centos distro) kutum üzerinde mükemmel çalışıyor. Teşekkürler!
pahariayogi

18

Bunu mevcut dizinin altındaki en büyük 25 suçlu için kullanıyorum

# -S to not include subdir size, sorted and limited to top 25
du -S . | sort -nr | head -25

Bu komut, zaman içinde büyüklüğü artıyor gibi görünen gizli bir klasör bulma hilesini yaptı. Teşekkürler!
thegreendroid

Bu bayt cinsinden mi?
Kullanıcı

Varsayılan olarak, sistemimde 'du -S' güzel bir insan okunabilir çıktı veriyor. Küçük dosyalar için düz bir bayt sayısından sonra daha büyük dosyalar için 'KB' veya 'MB' sonekini içeren bir sayı alırsınız.
serg10 17:14

İnsan tarafından okunabilir bir çıktı elde etmek için du -Sh yapabilirsin.
Siddhartha

@Siddhartha Eğer eklerseniz -h, büyük olasılıkla sort -nrkomutun etkisini değiştirecek - yani sıralama artık çalışmayacak ve daha sonra headkomut da çalışmayacak
Clare Macrae

14

Daha önceki bir şirkette, gece boyunca çalıştırılan ve belirli bir boyuttaki herhangi bir dosyayı tanımlayan bir cron işimiz vardı.

Bul / Boyutları + 10000k

Aramakta olduğunuz dizinler hakkında daha seçici olmak ve çevrimdışı olarak takılan uzaktan monte edilmiş sürücülere dikkat etmek isteyebilirsiniz.


-x Find komutunun başlangıç ​​noktasından başka aygıtlarda dosya bulamadığınızdan emin olmak için bulma seçeneğini kullanabilirsiniz . Bu, uzaktan monte edilen sürücüler sorununu düzeltir.
rjmunro

10

Bir seçenek du / sort komutunuzu bir cron işi olarak çalıştırmak ve bir dosyaya yazdırmak olacaktır, bu yüzden ihtiyacınız olduğunda zaten oradadır.


9

Komut satırı için du / sort yönteminin en iyisi olduğunu düşünüyorum. Eğer bir sunucuda değilseniz, Baobab - Disk kullanım analizcisine bir göz atmalısınız . Bu programın çalışması biraz zaman alır, ancak tüm eski Linux ISO'larının bulunduğu alt dizini kolayca derinlemesine bulabilirsiniz.


2
Ayrıca uzak klasörleri SSH, FTP, SMB ve WebDAV üzerinden tarayabilir.

Bu harika. Bazı şeyler onları görselleştirmek için bir GUI ile daha iyi çalışır ve bu onlardan biri! CrashPlan için sunucumda bir X sunucusuna ihtiyacım var, bu yüzden de çalışıyor.
timelmer,

9

kullanırım

du -ch --max-depth=2 .

ve maksimum derinliği ihtiyaçlarıma uyacak şekilde değiştiriyorum. "C" seçeneği klasörler için toplamları, "h" seçeneği boyutları K, M veya G cinsinden uygun şekilde yazdırır. Diğerlerinin söylediği gibi, hala tüm dizinleri tarıyor, ancak çıktıyı büyük dizinleri bulmak için daha kolay bulacağım şekilde sınırlandırıyor.


9

Ben ikinciye gidiyorum xdiskusage. Ancak şunu ekleyeceğim, aslında bir du frontend olduğunu ve du çıktısını bir dosyadan okuyabiliyorum. Böylece du -ax /home > ~/home-dusunucunuzda, scpdosyayı geri çalıştırabilir ve sonra onu grafiksel olarak analiz edebilirsiniz. Veya ssh ile borulayın.


6

Du çıktısını, dizinin boyutunun bazı eşik değerlerden daha büyük olup olmadığını kontrol eden basit bir awk betiğine beslemeyi deneyin, eğer öyleyse yazdırır. Sen beklemek gerekmez sen alma bilgisi başlamadan önce tüm ağaç (diğer cevapların vs çok) geçilen için.

Örneğin, aşağıda yaklaşık 500 MB'den fazla tüketen herhangi bir dizin gösterilmektedir.

du -kx / | awk '{ if ($1 > 500000) { print $0} }'

Yukarıdakileri biraz daha tekrar kullanılabilir hale getirmek için, .bashrc'nizde bir işlev tanımlayabilirsiniz (veya bağımsız bir komut dosyasında yapabilirsiniz).

dubig() {
    [ -z "$1" ] && echo "usage: dubig sizethreshMB [dir]" && return
    du -kx $2 | awk '{ if ($1 > '$1'*1024) { print $0} }'
}

Bu nedenle dubig 200 ~/, 200 MB'den daha fazla kullanan dizinler için ana dizinin altına bakar (cihazdaki bağlantıları izlemeden).


Bir düzine grep hackinin daha çok ihmal edilmesi üzücü. Oh ve du -k
du'nun

-K hakkında iyi fikir. Düzenlenen.
Mark Borgerding

Daha basit ve daha sağlam: du -kx $2 | awk '$1>'$(($1*1024))(yalnızca varsayılan eylemi print $0
uyandırmak

@ Date_thompson_085 için iyi nokta. Bu bildiğim tüm awk sürümleri için geçerlidir (net / free-BSD & GNU). @ mark-borgerding bu yüzden ilk örneğinizi sadece basitleştirebilirsinizdu -kx / | awk '$1 > 500000'
16'da ndemou

@ mark-borgerding: Bir yere yalnızca birkaç kByte kaldıysanız du'nun bütün çıktısını bu şekilde tutabilirsiniz du -kx / | tee /tmp/du.log | awk '$1 > 500000'. Bu çok faydalıdır çünkü ilk filtrelemeniz sonuçsuz kalırsa, bunun gibi diğer değerleri deneyebilir awk '$1 > 200000' /tmp/du.logveya sort -nr /tmp/du.log|lesstüm dosya sistemini yeniden
taramaksızın

4

Eski güzel xdiskusage ' i du (1)' e grafiksel bir alternatif olarak seviyorum .


Sorunun bu bölümüne dikkat edin: "O zamandan beri standart Linux komutlarına dayanan bir komut satırı çözümü tercih ederim ..."
ndemou

4

Bir genel bakış elde etmek ve oradan aşağıya inmek için aşağıdakileri kullanmayı tercih ederim ...

cd /folder_to_check
du -shx */

Bu, GB, MB gibi okunabilir çıktılarla sonuçları gösterecektir. Ayrıca uzak dosya sistemlerinde dolaşmayı da önleyecektir. Bu -sseçenek yalnızca bulunan her klasörün özetini gösterir, böylece bir klasörün daha fazla ayrıntılarıyla ilgileniyorsanız daha ayrıntılı inceleyebilirsiniz. Bu çözümün yalnızca klasörler göstereceğini ve böylece dosyaları da istiyorsanız yıldız işaretinden sonra / işaretini kaldırmak isteyeceğinizi unutmayın.


4

Burada bahsedilmedi, ancak silinen / asılı dosyaların olup olmadığını da kontrol etmelisiniz. Bir kaçmak cronjob 5.9GB silinmiş bir tmp dosyası vardı.

https://serverfault.com/questions/207100/how-can-i-find-phantom-storage-usage Söz konusu dosyanın (cron) işlem sahibini bulmama yardım etti ve sonra /proc/{cron id}/fd/{file handle #}dosyayı daha az kullanabildim . kaçmak için soru sormak, bunu çözmek ve daha sonra alanı boşaltmak ve cron'un zarifçe kapanmasına izin vermek için ""> dosyasını yankılanmak.


3

Terminalden dutree ile disk kullanımının görsel temsilini alabilirsiniz.

Çok hızlı ve hafiftir çünkü Pas'ta uygulanır.

dutree

$ dutree -h
Usage: dutree [options] <path> [<path>..]

Options:
    -d, --depth [DEPTH] show directories up to depth N (def 1)
    -a, --aggr [N[KMG]] aggregate smaller than N B/KiB/MiB/GiB (def 1M)
    -s, --summary       equivalent to -da, or -d1 -a1M
    -u, --usage         report real disk usage instead of file size
    -b, --bytes         print sizes in bytes
    -f, --files-only    skip directories for a fast local overview
    -x, --exclude NAME  exclude matching files or directories
    -H, --no-hidden     exclude hidden files
    -A, --ascii         ASCII characters only, no colors
    -h, --help          show help
    -v, --version       print version number

Web sitesinde tüm kullanım detaylarına bakın


2

Komut satırı için du (ve seçenekleri) en iyi yol gibi görünüyor. DiskHog da bir cron işinden du / df bilgisini kullanıyor gibi görünüyor, bu nedenle Peter'in önerisi muhtemelen en basit ve etkili kombinasyondur.

( FileLight ve KDirStat GUI için idealdir.)


2

Disk alanı kullanımınızı analiz etmek için findve gibi standart araçları kullanabilirsiniz sort.

Boyutlarına göre sıralanmış dizinleri listele :

find / -mount -type d -exec du -s "{}" \; | sort -n

Liste dosyaları kendi büyüklüğüne göre sıralanır:

find / -mount -printf "%k\t%p\n" | sort -n

1
Bunu en iyi cevap olarak buldum, sıralı düzende büyük
olanı

2

Belki de mc(klasik metin modu dosya yöneticisi olan Midnight Commander) varsayılan olarak yalnızca dizin inode'larının boyutunu gösterir (genellikle 4096), ancak CtrlSpaceAraçlar menüsüyle veya seçili dizinin işgal ettiği alanı insan tarafından okunabilir bir şekilde görebilirsiniz. biçim (örneğin, bazıları gibi 103151M).

Örneğin, aşağıdaki resim 2018 ve 2017'deki vanilya TeX Live dağıtımlarının tam boyutunu gösterirken, 2015 ve 2016 sürümleri yalnızca inode boyutunu gösteriyor (ancak her biri gerçekten 5 Gb'ye yakın).

Yani CtrlSpace, yalnızca gerçek dizin seviyesi için birebir yapılmalıdır, ancak bununla birlikte giderken çok hızlı ve kullanışlıdır mc, belki de ihtiyacınız olmayacak ncdu(gerçekten, bu amaç için daha iyidir). Aksi takdirde, ayrıca çalışabilir ncdudan mc. Çıkmadan mcveya başka bir terminali başlatmadan.

mwe


1

İlk başta, gibi dizinlerin boyutunu kontrol ediyorum:

du -sh /var/cache/*/

1

Büyük dosyaların son birkaç günde eklendiğini biliyorsanız (örneğin, 3), o zaman ls -ltrason eklenen dosyaları bulmak için " " ile birlikte bir find komutunu kullanabilirsiniz :

find /some/dir -type f -mtime -3 -exec ls -lart {} \;

Bu, -type fdizinleri değil, sadece dosyaları (" ") verecektir ; sadece son 3 gündeki (" -mtime -3") değişiklik zamanı olan dosyalar ve ls -lartbulunan her bir dosyaya (" -exec" bölüm) " " uygulayın.


1

Orantısız disk alanı kullanımını anlamak için, kök dizinden başlamak ve en büyük çocuklarından bazılarına bakmak yararlıdır.

Bunu yapabiliriz

  • du çıktısını bir dosyaya kaydetme
  • yinelemeli sonuç boyunca grepping

Yani:

# sum up the size of all files and directories under the root filesystem
du -a -h -x / > disk_usage.txt
# display the size of root items
grep $'\t/[^/]*$' disk_usage.txt

Şimdi diyelim / usr çok büyük görünüyor

# display the size of /usr items
grep $'\t/usr/[^/]*$' disk_usage.txt

Şimdi eğer / usr / local şüpheli derecede büyükse

# display the size /usr/local items
grep $'\t/usr/local/[^/]*$' disk_usage.txt

ve bunun gibi...


1

100Mb'den büyük dosyaları bulmak için bu komutu kullandım:

find / -size +100M -exec ls -l {} \;

0

duÇıktıyı insan tarafından okunabilir biçimde yönlendiren egrepve düzenli bir ifadeyle eşleştiren en kötü suçluları takip etmekte başarılı oldum .

Örneğin:

du -h | egrep "[0-9]+G.*|[5-9][0-9][0-9]M.*"

bu da size her şeyi 500 megabayt veya daha yüksek vermelidir.


Aritmetik işlemler için grep kullanmayın - Kullanım awk yerine: du -k | awk '$1 > 500000'. İlk denemede anlaşılması, düzeltilmesi ve düzeltilmesi çok daha kolaydır.
ndemou

0

Hız istiyorsanız, izlemek istediğiniz dosya sistemlerinde kotaları etkinleştirebilir (herhangi bir kullanıcı için kotalar ayarlamanız gerekmez) ve her kullanıcı tarafından kullanılan disk alanını listelemek için kota komutunu kullanan bir komut dosyası kullanabilirsiniz. Örneğin:

quota -v $user | grep $filesystem | awk '{ print $2 }'

Size belirli bir kullanıcı için belirli bir dosya sistemindeki bloklarda disk kullanımını verir. Kullanımları bu şekilde saniyeler içinde kontrol edebilmelisiniz.

Kotaları etkinleştirmek için usrquota'yı / etc / fstab dosyanızdaki dosya sistemi seçeneklerine eklemeniz ve ardından kota çağrısı yapılmadan önce boş bir dosya sisteminde kota denetiminin çalıştırılabilmesi için muhtemelen yeniden başlatmanız gerekir.


0

İşte herhangi bir disk veya dizindeki tümörleri bulmak için derin örnekleme kullanan küçük bir uygulama. Dizin ağacını iki kez, ölçmek için bir kez ve dizinin altındaki 20 "rasgele" bayta giden yolu yazdırmak için ikinci kez yürür.

void walk(string sDir, int iPass, int64& n, int64& n1, int64 step){
    foreach(string sSubDir in sDir){
        walk(sDir + "/" + sSubDir, iPass, n, n1, step);
    }
    foreach(string sFile in sDir){
        string sPath = sDir + "/" + sFile;
        int64 len = File.Size(sPath);
        if (iPass == 2){
            while(n1 <= n+len){
               print sPath;
               n1 += step;
            }
        }
        n += len;
    }
}

void dscan(){
    int64 n = 0, n1 = 0, step = 0;
    // pass 1, measure
    walk(".", 1, n, n1);
    print n;
    // pass 2, print
    step = n/20; n1 = step/2; n = 0;
    walk(".", 2, n, n1);
    print n;
}

Program Dosyaları dizini için çıktı şöyle görünüyor:

 7,908,634,694
.\ArcSoft\PhotoStudio 2000\Samples\3.jpg
.\Common Files\Java\Update\Base Images\j2re1.4.2-b28\core1.zip
.\Common Files\Wise Installation Wizard\WISDED53B0BB67C4244AE6AD6FD3C28D1EF_7_0_2_7.MSI
.\Insightful\splus62\java\jre\lib\jaws.jar
.\Intel\Compiler\Fortran\9.1\em64t\bin\tselect.exe
.\Intel\Download\IntelFortranProCompiler91\Compiler\Itanium\Data1.cab
.\Intel\MKL\8.0.1\em64t\bin\mkl_lapack32.dll
.\Java\jre1.6.0\bin\client\classes.jsa
.\Microsoft SQL Server\90\Setup Bootstrap\sqlsval.dll
.\Microsoft Visual Studio\DF98\DOC\TAPI.CHM
.\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\sqlce20sql2ksp1.exe
.\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\docs\Partition II Metadata.doc
.\Microsoft Visual Studio .NET 2003\Visual Studio .NET Enterprise Architect 2003 - English\Logs\VSMsiLog0A34.txt
.\Microsoft Visual Studio 8\Microsoft Visual Studio 2005 Professional Edition - ENU\Logs\VSMsiLog1A9E.txt
.\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\wce500\mipsiv\NETCFv2.wce5.mipsiv.cab
.\Microsoft Visual Studio 8\VC\ce\atlmfc\lib\armv4i\UafxcW.lib
.\Microsoft Visual Studio 8\VC\ce\Dll\mipsii\mfc80ud.pdb
.\Movie Maker\MUI\0409\moviemk.chm
.\TheCompany\TheProduct\docs\TheProduct User's Guide.pdf
.\VNI\CTT6.0\help\StatV1.pdf
7,908,634,694

Bana dizinin 7.9 gb olduğunu söylüyor.

  • ~% 15 Intel Fortran derleyicisine gidiyor
  • ~% 15 VS .NET 2003’e gidiyor
  • ~% 20 VS 8'e gidiyor

Bunlardan herhangi birinin boşaltılıp kaldırılamayacağını soracak kadar basit.

Ayrıca, dosya sistemine dağıtılan ancak birlikte alındığında dosya türlerinden bahseder, yerden tasarruf için bir fırsat sunar:

  • ~% 15 kabaca .cab ve .MSI dosyalarına gider
  • ~% 10 kabaca metin dosyalarını kaydetmeye gidiyor

Orada da, "SmartDevices" ve "ce" desteği (~% 15) gibi, muhtemelen olmadan yapabildiğim birçok şey var.

Doğrusal zaman alır, ancak sık yapılması gerekmez.

Bulduğu şeylere örnekler:

  • gerçekten kaydedilmesi gerekmeyen birçok kaydedilmiş kod havuzundaki DLL'lerin yedek kopyaları
  • belirsiz bir dizinin altındaki, sunucudaki birisinin sabit diskinin yedek bir kopyası
  • hacimli geçici internet dosyaları
  • eski doktor ve yardım dosyaları uzun geçmişe ihtiyaç duyuluyor

0

Benzer bir sorunum vardı, ancak bu sayfadaki cevaplar yeterli değildi. Giriş için en yararlı olan aşağıdaki komutu buldum:

du -a / | sort -n -r | head -n 20

Bu bana en büyük 20 suçluyu gösterirdi. Ancak bunu çalıştırsam da, asıl sorunu göstermedi, çünkü dosyayı zaten sildim. Yakalama, hala silinen bir günlük dosyasına atıfta bulunan bir işlem vardı ... bu yüzden önce bu işlemi öldürmek zorunda kaldım, sonra disk alanı boşaldı.


İyi bir nokta ama bu bir yorum olmalı ve kendi başına bir cevap olmamalı - bu soru çok fazla cevabı
içeriyor

0

Tüm disklerinizin çevrimiçi bir web raporunu oluşturmak için DiskReport.net'i kullanabilirsiniz .

Pek çok çalışma ile neyin büyüdüğünü bulmak kolay, tüm klasörleriniz için geçmiş grafiğini gösterir


Sorunun iki ana noktaları eşleşmiyor Bu araç ve "Ben standart Linux dayanan bir komut satırı çözümü tercih ediyorum komutları" "Ben genellikle bölüm full gider sonra kendimi suçlu izini mücadele bulmak"
ndemou

0

Bütün bu alanı kaplayan şeyleri keşfetmek için bir GUI içeren JDiskReport adında güzel bir platformlar arası ücretsiz yazılım var.

Örnek ekran görüntüsü:
JDiskReport ekran görüntüsü

Tabi ki, indirip kurmadan ya da farklı bir sürücüye indirmeden önce bir USB alanını el ile temizlemeniz (bir USB sürücü gibi) gerekir.


(Burada , yinelenen soru üzerine aynı yazarın yanıtından kopyalandı)

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.