Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/02/2010, à 09:52

touty

du et liens physiques

Bonjour,

Je cherche à afficher l'espace disque occupé par un dossier qui contient des liens physiques.

Mais je n'ai pas la même taille selon comment j'utilise la commande du :

$ du -hs *
172K	toto
48K	 titi
2M	  tutu

$ du -hs toto
18M	toto

Le premier me donne l'espace occupé par les dossiers listés, l'autre la taille des fichiers du dossier demandé.

J'aimerais avoir l'espace disque occupé (172K) lorsque je précise le nom du fichier (sans passer par *), une idée ?

++

Dernière modification par touty (Le 17/02/2010, à 09:54)


Quelques guides mis à dispo ici http://libre.adok-conception.fr, servez-vous !

Hors ligne

#2 Le 17/02/2010, à 11:12

francoisp31

Re : du et liens physiques

je ferai plustot comme ça pour limiter ce risque et surtout pour visuellement trier les volumes

 for i in $(ls -d) ; do du -s $i/* ; done | sort -n

Que les puces d'un millier de chiens galleux infeste le cul de celui qui osera vous gacher ne serai ce
qu'une seule journée de votre vie et que les bras lui soient trop court pour qu'il puisse se le gratter.

Hors ligne

#3 Le 19/02/2010, à 09:39

touty

Re : du et liens physiques

Euh ta ligne est est sympa ça permet de trier, mais j'obtiens le même résultat qu'un "du *" :

$ for i in $(ls -d) ; do du -hs $i/* ; done | sort -n
2M      tutu
172K    toto
48K     titi

Mon objectif est d'avoir l'espace occupé par un seul dossier. Et quand je fais "du toto", j'ai la taille du dossier mais pas l'espace disque occupé (j'ai 18M au lieu de 172K).

$ du -hs toto
18M    toto

Je sais pas si je suis clair ?
++

Dernière modification par touty (Le 19/02/2010, à 09:40)


Quelques guides mis à dispo ici http://libre.adok-conception.fr, servez-vous !

Hors ligne

#4 Le 23/02/2010, à 13:53

BorX

Re : du et liens physiques

Pas de Linux sous la main sad
Mais, c'est pas l'option -l de du qui t'intéresse ?
extrait d'un man du :

-l, --count-links
    Compter la taille de tous les fichiers, même s'ils ont déjà été pris en compte via un autre lien physique.

Hors ligne

#5 Le 23/02/2010, à 14:09

touty

Re : du et liens physiques

Non justement, c'est l'inverse que je veux.

Je sens qu'on s'approche, cool cool.
++


Quelques guides mis à dispo ici http://libre.adok-conception.fr, servez-vous !

Hors ligne

#6 Le 24/02/2010, à 00:31

BorX

Re : du et liens physiques

Alors je comprends pas ce que tu veux...

$ du -sh essai/
22G	essai/
$ du -sh pouette/ essai/
66G	pouette/
4,0K	essai/
$ du -lsh pouette/ essai/
66G	pouette/
22G	essai/

Hors ligne

#7 Le 24/02/2010, à 00:32

BorX

Re : du et liens physiques

OK ! Je viens de piger...

Bah, à mon avis, c'est pas possible.

Quand 2 fichiers sont liés (hard link), ça veut dire que 2 noms de fichiers pointent sur le même i-nœud. L'i-nœud, c'est l'i-nœud. Il est pas dans un répertoire particulier.
En revanche, un nom de fichier est dans un répertoire. Mais les noms de fichiers ne font que pointer sur deux i-nœuds (différents ou pas).
Autrement dit, le fichier n'est pas plus à un endroit qu'à un autre. Il est à un endroit du disque dur, mais il est référencé plusieurs fois sous des noms différents.

Ou dit encore autrement, en reprenant ton exemple : pourquoi les fichiers qui sont dans titi primeraient sur ceux qui sont dans toto ?
Efface ceux qui sont dans toto, il restera ceux dans titi.
Efface ceux qui sont dans titi, il restera ceux dans toto.
Ce ne sont que des noms de fichiers. L'i-nœud est le même et persiste tant qu'au moins un nom de fichier continue à pointer dessus.

Donc pour résumer, ton système de fichier est ainsi fait :
toto contient 18M
titi contient 18M
Et à eux deux, ils contiennent 18M.

Dernière modification par BorX (Le 24/02/2010, à 00:44)

Hors ligne

#8 Le 24/02/2010, à 00:33

BorX

Re : du et liens physiques

du -hs * | grep toto

Pas mieux big_smile

Hors ligne

#9 Le 24/02/2010, à 00:40

BorX

Re : du et liens physiques

Si, mieux :

du -hs toto titi tutu | grep toto

Car, tu l'as compris, les fichiers liés entre toto et titi ne sont pas plus dans un répertoire que dans l'autre. C'est pourquoi on n'a pas les mêmes valeurs en changeant l'ordre des répertoires demandés :

du -hs toto titi tutu
du -hs titi toto tutu

En fait, si ta finalité est de savoir combien tu gagnerais en effaçant ton répertoire toto, tu peux ne lancer un du que sur les fichiers non liés :

find toto/ -links -2 -exec du -h {} +

Mais attention : 2 fichiers peuvent aussi être liés au sein d'un même répertoire (toto peut contenir 2 fichiers qui pointent sur le même i-noeud ; et ces fichiers seront évincés par le find ci-dessus).

Hors ligne

#10 Le 25/02/2010, à 11:04

touty

Re : du et liens physiques

Cette commande me va très bien :

du -hs * | grep toto

C'était tellement simple big_smile

Merci pour toutes ces explications, tu es dans le vrai sur toute la ligne !
Par contre, j'arrive pas à m'en sortir avec ta toute dernière commande (le find), mais pas grave, le grep me va très bien pour ce que j'ai besoin ! MERCI.

++


Quelques guides mis à dispo ici http://libre.adok-conception.fr, servez-vous !

Hors ligne