Bilgisayarımdaki hangi dosyaların en fazla yer kapladığını bulmaya çalışırken sorumla karşılaştım. İşte Windows Alt Sisteminden Linux için bulunan toplam makine hafızasına ilişkin bilgiler (WSL) /bash
bballdave025@WORK:~$ df -h /mnt/c
Filesystem Size Used Avail Use% Mounted on
C: 239G 231G 7.8G 97% /mnt/c
Sorumun alanın nasıl temizleneceği ile ilgili olmadığını unutmayın.
Program FilesDizini kontrol ederek başladım .
bballdave025@WORK:~$ du -sh /mnt/c/Program\ Files/
du: cannot read directory '/mnt/c/Program Files/Microsoft Policy Platform/authorityDb': Permission denied
du: cannot read directory '/mnt/c/Program Files/Microsoft SQL Server/130/Shared/ErrorDumps': Permission denied
du: cannot read directory '/mnt/c/Program Files/WindowsApps': Permission denied
2.5T /mnt/c/Program Files/
Ana konu
Benim WSL bash du, (vardır benim makinede bana anlatıyor 239GBbellek,) benim Program Filesdizin kaplıyor 2.5TB ait 239GBkullanılabilir bellek. Sanki ağzımda yutmadan iki bardak su tutuyorum. (Bu sadece boyutların oranını göstermek içindir - benim sorunum su içermiyor.)
Bu arada, yönetici haklarım yok - sudo !!herhangi bir sorunu çözmek için hayır . Bu yazıyı yazmaya devam ederken Permission deniedhataları ( gerçek olmayan bir biçimde ortaya çıkacak) dışarıda bırakacağım . Ayrıca çalışma bilgisayarında olduğumu da unutmayın, bu yüzden erişemediğim şeyler var. sudo
Ana soru: Benim durumumda disk kullanımını kontrol etmek, yani C:Linux için Windows Subsystem kullanarak bir Windows sürücüdeki disk kullanımını kontrol etmek için nispeten basit bir yol var mı ?
İkincil Soru: Burada neler halt oluyor? Neden dizimin makinemde Program Filesolduğundan 10 kat daha fazla yer kapladığı konusunda bir rapor alıyorum ?
Bu arada ... , Windows söylüyor Program Filesbir büyüklüğe sahiptir 4.83 GB, ben kullanarak bulduğu gerçeği File Explorerüzerinde, sağ tıklayarak Program Files'Özellikler'' klasöründe ve seçme
Çözümdeki Girişimlerim
İlk düşüncem, şirketin kodlama yazılımı ya da bir virüsten koruma programı ya da başka bir şey için bazı sembolik bağlantılar ya da sürücü haritalama eşyaları olabileceği idi, bu yüzden mansayfanın kontrolünü yaptım du. Yardım edebileceğimi düşündüğüm iki bayrak buldum.
-P, --no-dereference don't follow any symbolic links (this is the default) -x, --one-file-system skip directories on different file systems
Ancak du -shP /mnt/c/Program\ Files/, du -shx /mnt/c/Program\ Files/ve hatta du -shPx /mnt/c/Program\ Files/bana verdi 2.5T. Bu konuda, sembolik izleri sürmesi gereken seçenek de aynıydı du -shL. Çıktı 2.5T. Aynısı, denediğim belki ilgili seçenekler du -shDve du -shHaynısını verdi - 2.5Thepsi için.
Bir sonraki düşüncem belki de Windows kısayollarının işleri karıştırdığıydı, ben de onları dışlamaya çalıştım. (Bu kodun kısayolları izlemesini gerçekten engelleyip engellemediğini bilmiyorum ama denemeye değer olduğunu düşündüm.) Zar yok.
bballdave025@WORK:~$ du -sh --exclude=*.lnk /mnt/c/Program\ Files/
2.5T /mnt/c/Program Files/
Önyargıları geride bırakabilir ve <shudder> Windows Command Line </shudder>eski PowerShellbecerilerimin tozunu çıkaracak bir şey deneyebilirim . Sanırım kurşunu bile ısırıp File ExplorerGUI'deki her dizine gidebilir , her bir klasörü tıklayabilir, 'Özellikler'i seçebilir, hangi alt dizinin en fazla yer kapladığını bulabilir, en çok bellek kullanımı olan dizine girebilir ve her bir klasörü tıklatarak tekrar ... [uyuyor] ...
... Ancak, neden bu garip sonuca ulaştığımla ilgileniyorum. Ben baktığımda Program Files (x86), bir doldurma gibi bir sonuç elde futbol topu ağzımda (non-Amerikan) futbol. (Bir kez daha, boyutların oranı açısından konuşuyorum; ağzımın hacmi sorunumla ilgili değil.)
bballdave025@WORK:~$ du -sh /mnt/c/Program\ Files\ \(x86\)/
11T /mnt/c/Program Files (x86)/
(Windows / File Explorer22,8 GB boyutunda bir rapor verdi ... 30 saniye bekledikten sonra.)
Kaynaklar ve Girişimler
Gönderen bu Super User cevap , benim durum olmadığını kontrol denemek için bir fikrim var
Kaldırdığınız dosyalar hala bir işlem tarafından açıldı.
bballdave025@WORK:~$ lsof -a +L1 /mnt/c/Program\ Files/
bballdave025@WORK:~$
Çıktı olmadığından, kaldırdığım dosyaların hala bir işlem tarafından açılmadığını varsayıyorum.
Ayrıca bu soruya baktım vedu Linux ve Cygwin'deki farklı sonuçlar hakkında cevaplar aldım . Ancak, bu soruda açıklanan boyuttaki farklılıklar küçüktü, bu yüzden sorunun benzer olduğuna inanmıyorum. Ben emin iken
Farklı dosya sistemlerinde depolandığında aynı dosya grubunun farklı [sic] disk boyutunu kullanması şaşırtıcı değildir.
Ben do kullanımı aynı dosya kümesi için bir sürpriz olduğunu düşünüyorum herhangi onları gerçekten erişmek için farklı temel yolu vardır bile, tek bir yerde saklanır yaparken farklı disk boyutunu.
Sonraki adımlar
Sürücümde bir klasör oluşturmaya C:, küçük bir dosyaya koymaya karar verdim ve dosya boyutunun beklendiği gibi olup olmadığını kontrol ettim.
bballdave025@WORK:~$ mkdir -p /mnt/c/Users/bballdave025/little_guy
bballdave025@WORK:~$ echo "This should make a small file." > /mnt/c/Users/bballdave025/little_guy/small_file.txt
bballdave025@WORK:~$ du -sh /mnt/c/Users/bballdave025/little_guy/small_file.txt
17K /mnt/c/Users/bballdave025/little_guy/small_file.txt
bballdave025@WORK:~$ du -shPx /mnt/c/Users/bballdave025/little_guy/
17K /mnt/c/Users/bballdve025/little_guy/
Bu küçük bitli metin dosyası için 17KB büyük görünüyor. Her karakter için bir bayt varsa, bu bize 31 bayt verir. Bu alıştırmanın - bir metin dosyası yapmak ve kontrol etmek du- soruyu cevaplamaya yardımcı olup olmayacağını bilmiyorum , ama bu çabamın bir parçası oldu.
Sıkıştım. Gerçekten klasörlere tıklamak istemiyorum. Ayrıca bu tuhaf davranışı neden aldığımı da bilmek istiyorum. Herhangi bir fikir?
Sistem detayları
bballdave025@WORK:~$ uname -a | head -n 1
Linux WORK 4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
bballdave025@WORK:~$ bash --version | head -n 1
GNU bash, version 4.3.46(1)-release (x86_64-pc-linux-gnu)
bballdave025@WORK:~$ systeminfo.exe | sed -n 's/^OS\ *//p'
Unable to translate current working directory. Using C:\Windows\System32
Name: Microsoft Windows 10 Enterprise
Version: 10.0.15063 N/A Build 15063
Manufacturer: Microsoft Corporation
Configuration: Member Workstation
Build Type: Multiprocessor Free
<shudder> Windows Command Line </shudder>eskiPowerShellbecerilerimin tozunu çıkaracak bir şey deneyebilirim . Sanırım kurşunu bile ısırıpFile ExplorerGUI'deki her dizine gidebilir , her bir klasörü tıklayabilir, 'Özellikler'i seçebilir, hangi alt dizinin en fazla yer kapladığını bulabilir, en çok bellek kullanımı olan dizine girebilir ve her bir klasörü tıklatarak tekrar ... [uyku] ... Ben birbashçözümü tercih ederim (daha güçlü, daha hızlı) ve ayrıca garip davranışları da merak ediyorum.