188 votes

Pourquoi cela ne montre-t-il pas les fichiers/dossiers cachés ?

Je regardais dans mon système avec du -sch ./* pour trouver les gros fichiers inutiles que j'ai peut-être stockés sans raison, quand j'ai trouvé ça :

$ 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

Comment rendre visibles les fichiers cachés ? du -sch ./.* donne le même résultat que du -sch ./* .

342voto

don.joey Points 26933

Utilisez

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

dans votre dossier personnel.

Alternativement, la commande que j'utilise le plus fréquemment est

ncdu

Facile à installer si nécessaire :

sudo apt-get install ncdu

73voto

Yurii Kolesnykov Points 1219

J'ai posé la même question sur la liste de diffusion coreutils, car j'ai eu du mal à me souvenir de cette commande bizarre de @don.joey. Et Bob Proulx proposée une commande meilleure et plus naturelle : du -ahd1 | sort -h

Si vous voulez lister tous les fichiers du répertoire courant, alors utilisez '.' ou ne lui donnez aucun argument de fichier. Vous pouvez également pouvez utiliser l'option -d, --max-depth=N.

Essayez ça :

du -hd1

9voto

lak-b Points 764

Lorsque vous exécutez cette même commande à l'intérieur du répertoire, elle n'inclut pas les fichiers cachés qui commencent par . dans le compte. Si vous avez installé Steam par exemple, il installe par défaut les jeux sous ~/.local/share/Steam/ et il est lui-même installé là aussi.

Sous bash, vous devez apparemment exécuter du -sch .[!.]* * car il ne développe pas correctement le .* glob. Sous zsh ou d'autres coquillages, du -sch * .* devrait fonctionner, car .* doit être étendu pour inclure la liste de tous les fichiers cachés dans le répertoire actuel.

1voto

Keith Points 421

Cela fonctionne également pour afficher les fichiers et répertoires cachés :

du -sch $(ls -A .) | sort -h

0voto

Mark Points 416

Je ne pense pas que le du possède une option de ligne de commande permettant de traiter les fichiers cachés par défaut.

Une façon d'y parvenir est d'utiliser l'option find pour trouver les fichiers cachés qui vous intéressent, puis exécutez l'utilitaire du sur chaque entrée :

find ./ -maxdepth 1 -name '.*' -exec  du -hs {} \;

Cela vous donne une flexibilité supplémentaire, car vous pouvez être intéressé uniquement par les annuaires :

find ./ -maxdepth 1 -type d -name '.*' -exec  du -hs {} \;

Ou vous pouvez vouloir voir tous les fichiers et répertoires cachés jusqu'au répertoire de travail actuel :

find ./ -name '.*' -exec  du -hs {} \;

Il n'est pas beaucoup plus difficile de trier le résultat, de sorte que vous pouvez facilement identifier les gros fichiers cachés qui pourraient vous aider à économiser de l'espace disque :

{ find ./ -maxdepth 1 -iname '.*' -exec  du -hs \{\} \; ;} | sort -h

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X