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 Files
Dizini 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 239GB
bellek,) benim Program Files
dizin kaplıyor 2.5TB ait 239GB
kullanı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 denied
hataları ( 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 Files
olduğundan 10 kat daha fazla yer kapladığı konusunda bir rapor alıyorum ?
Bu arada ... , Windows söylüyor Program Files
bir 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 man
sayfanı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 -shD
ve du -shH
aynısını verdi - 2.5T
hepsi 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 PowerShell
becerilerimin tozunu çıkaracak bir şey deneyebilirim . Sanırım kurşunu bile ısırıp File Explorer
GUI'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 Explorer
22,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>
eskiPowerShell
becerilerimin tozunu çıkaracak bir şey deneyebilirim . Sanırım kurşunu bile ısırıpFile Explorer
GUI'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.