Vraag Waarom toont dit niet de verborgen bestanden / mappen?


Ik keek met mijn systeem door du -sch ./* om de grote nutteloze bestanden te vinden die ik misschien zonder reden heb opgeslagen, toen ik dit ontdekte:

$ du -sch ./*
du: cannot read directory ‘./drbunsen/.gvfs’: Permission denied
du: cannot read directory ‘./drbunsen/.cache/dconf’: Permission denied
18G ./drbunsen
18G total

$ cd drbunsen/
$ du -sch ./*
601M ./Desktop
20K ./Documents
598M ./Downloads
4.0K ./flash
4.0K ./Music
8.0M ./Pictures
4.0K ./Public
4.0K ./Templates
4.0K ./Ubuntu One
8.0K ./Videos
11G ./VirtualBox VMs
6.9M ./workspace
12G total

Hoe maak ik verborgen bestanden zichtbaar? du -sch ./.* geeft hetzelfde resultaat als du -sch ./*.


111
2017-10-11 20:30


oorsprong


du -hs .[^.]* * voor alle verborgen bestanden, Exclusief  . en .. welke andere antwoorden lijken te ontbreken. - laggingreflex


antwoorden:


Gebruik

du -sch .[!.]* * |sort -h

in je thuismap.

Als alternatief is de opdracht die ik het meest gebruik is

ncdu

Eenvoudig te installeren indien nodig:

sudo apt-get install ncdu

199
2017-10-22 11:30



Bedankt, je bent een genie. Ik ben geen meester in bash, wat doe [!] Doen? - Dr_Bunsen
@Dr_Bunsen: het is een glob met alle bestanden die beginnen met een single .. Hier is een leuke truc: als je niet weet wat een glob ogend ding doet, probeer dan te rennen echo .[!.]* of wat dan ook. De schaal zal dan de glob uitbreiden en doorgeven echo, afdrukken van de lijst met bestanden die het resultaat zijn. - Tikhon Jelvis
Dat geeft geen lijst van bestanden met de naam like ..foo en kan problemen veroorzaken met bestanden waarvan de naam begint -. Het kan ook mislukken als de arg-lijst te lang is. du -ahd1 zou geen van die problemen hebben. - Stéphane Chazelas
Niet relevant voor de oorspronkelijke vraag, maar relevant voor dagelijks gebruik: het kan handig zijn om de schakelaar 'c' op te nemen om het totaal weer te geven en de opties een beetje opnieuw te ordenen om deze opdracht een beetje gemakkelijker te onthouden te maken: du -cksh .[!.]* * |sort -h. - Daddy32


Ik heb dezelfde vraag in de coreutils-mailinglijst, omdat het moeilijk voor me was om dit rare commando van @ don.joey te onthouden. En Bob Proulx voorgestelde Beter, natuurlijker commando: du -ahd1 | sort -h

Als u dan alle bestanden in de huidige map wilt weergeven   gebruik '.' of geef het helemaal geen bestandsargumenten. Ook jij   wil misschien de optie -d, --max-depth = N gebruiken.

Probeer dit:

du-hd1


41
2018-06-22 07:19



Voeg de toe -a optie om gelijk te zijn. - Stéphane Chazelas
Dit zou het geaccepteerde antwoord moeten zijn omdat het eenvoudiger en gemakkelijker te onthouden en te begrijpen is. - Bastien


Wanneer u dezelfde opdracht uitvoert binnen de map, worden de verborgen bestanden die hiermee beginnen niet opgenomen . in de graaf. Als u bijvoorbeeld Steam hebt geïnstalleerd, worden standaard games onder geïnstalleerd ~/.local/share/Steam/ en het zelf is daar ook geïnstalleerd.

Onder bash moet je blijkbaar rennen du -sch .[!.]* * omdat het de .* glob. Onder zsh of andere schelpen, du -sch * .* zou moeten werken, als .* moet worden uitgebreid met de lijst met alle verborgen bestanden in de huidige map.


6
2017-10-11 20:48



OK. Er is blijkbaar een probleem met bash, omdat het niet goed lijkt uit te breiden .*. Maar du -sch * .* doet het juiste ding onder zsh. Onder bash, du -sch .* lijkt te tellen . maar wordt niet uitgebreid om bestanden afzonderlijk weer te geven. - dobey
Voor mij. * Breidt ook uit naar ../* en daarom verdwijnt du uit de directory waarvan ik de grootte wil zien! Ik moest in plaats daarvan ./.[^.]* gebruiken. - Ari
Het is zsh en alle shells afgeleid van de Forsyth shell (tegenwoordig is dat meestal alleen pdksh en zijn derivaten) die het goede doen en niet uitbreiden. en hier. Alle andere Bourne-achtige shells doen (bash, Bourne, AT & T ksh, dash, yash ...). In zsh, zou je gebruiken du -sch -- *(D) echter niet du -sch -- * .*. - Stéphane Chazelas