Frage Warum zeigt dies nicht die versteckten Dateien / Ordner an?


Ich habe mit meinem System durchgesehen du -sch ./* um die großen nutzlosen Dateien zu finden, die ich ohne Grund angehäuft habe, als ich folgendes gefunden habe:

$ 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

Wie mache ich versteckte Dateien sichtbar? du -sch ./.* gibt das gleiche Ergebnis wie du -sch ./*.


111
2017-10-11 20:30


Ursprung


du -hs .[^.]* * für alle versteckten Dateien, ohne  . und .. Welche anderen Antworten scheinen zu fehlen. - laggingreflex


Antworten:


Benutzen

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

in deinem persönlichen Ordner.

Alternativ ist der Befehl, den ich am häufigsten verwende

ncdu

Bei Bedarf einfach zu installieren:

sudo apt-get install ncdu

199
2017-10-22 11:30



Danke, du bist ein Genie. Ich bin kein Meister in bash, was machen [!.]? - Dr_Bunsen
@Dr_Bunsen: Es ist ein glob, der alle Dateien auflistet, die mit einem einzelnen beginnen .. Hier ist ein netter Trick: Wenn Sie nicht wissen, was ein glob-aussehendes Ding tut, versuchen Sie zu laufen echo .[!.]* oder Wasauchimmer. Die Shell wird dann den Glob expandieren und ihn hineinlassen echo, die Liste der resultierenden Dateien auszudrucken. - Tikhon Jelvis
Das schlägt fehl, Dateien aufzulisten, die wie benannt werden ..foo und kann Probleme mit Dateien verursachen, deren Name mit beginnt -. Es könnte auch fehlschlagen, wenn die Arg-Liste zu lang ist. du -ahd1 hätte keines dieser Probleme. - Stéphane Chazelas
Für die ursprüngliche Frage nicht relevant, aber relevant für den täglichen Gebrauch: Es könnte nützlich sein, den Schalter 'c' einzuschließen, um die Summe anzuzeigen und die Optionen ein wenig neu zu ordnen, damit dieser Befehl ein wenig leichter zu merken ist: du -cksh .[!.]* * |sort -h. - Daddy32


Ich habe dieselbe Frage in Coreutils Mailingliste, weil es mir schwer war, mich an diesen komischen Befehl von @ don.joey zu erinnern. Und Bob Proulx vorgeschlagen besser, natürlicher Befehl: du -ahd1 | sort -h

Wenn Sie dann alle Dateien im aktuellen Verzeichnis auflisten möchten   Benutze entweder '.' oder geben Sie ihm keine Dateiargumente. Auch du   Vielleicht möchten Sie die Option -d, --max-depth = N verwenden.

Versuche dies:

du -hd1


41
2018-06-22 07:19



Ergänzen Sie die -a Möglichkeit, dass es gleichwertig ist. - Stéphane Chazelas
Dies sollte die akzeptierte Antwort sein, weil es einfacher und leichter zu merken und zu verstehen ist. - Bastien


Wenn Sie denselben Befehl innerhalb des Verzeichnisses ausführen, enthält er nicht die versteckten Dateien, die mit beginnen . in der Zählung. Wenn Sie beispielsweise Steam installiert haben, werden standardmäßig Spiele unter installiert ~/.local/share/Steam/ und es selbst ist dort auch installiert.

Unter bash musst du anscheinend rennen du -sch .[!.]* * wie es nicht richtig erweitert .* glob. Unter zsh oder andere Schalen, du -sch * .* sollte funktionieren, als .* sollte erweitert werden, um die Liste aller versteckten Dateien im aktuellen Verzeichnis aufzunehmen.


6
2017-10-11 20:48



OK. Es gibt anscheinend ein Problem mit bash, da es nicht richtig zu erweitern scheint .*. Aber du -sch * .* macht das Richtige unter zsh. Unter Bash, du -sch .* scheint zu zählen . erweitert jedoch nicht, um Dateien einzeln anzuzeigen. - dobey
Für mich. * Erweitert sich auch auf ../* und du gehst daher aus dem Verzeichnis, das ich seine Größe sehen möchte! Ich musste stattdessen ./.[^.]* verwenden. - Ari
Es ist zsh und alle Shells, die von der Forsyth-Shell abgeleitet sind (heutzutage sind das meistens nur pdksh und seine Derivate), die das Richtige tun und nicht expandieren. und hier. Alle anderen Bourne-artigen Shells (Bash, Bourne, AT & T ksh, Dash, Yash ...). Im zshwürdest du benutzen du -sch -- *(D) obwohl nicht du -sch -- * .*. - Stéphane Chazelas