Espace disque utilisé par fichier specifique (apres find)

Bonjour, je souhaite calculer l’espace disque utilisé au sein d’un repertoire par des fichiers ayant des caracteristiques spécifiques.

J’ai un repertoire /var/www/http/xxx contenant des fichiers et des sous-repertoires contenant d’autres fichiers, j’isole les fichiers qui m’interesse à l’aide de “find” (je recupere donc une liste de fichiers qu’ils soient dans le repertoire /xxx ou un sous-repertoire de /xxx.

Comment calculer maintenant l’espace disque utilisé par ces fichiers et uniquement ces fichiers ?

J’ai essayé de piper le resultat de la commande “find” avec un “du” mais le resultat me donne également l’espace disque utilisé par d’autres repertoires que /xxx contenus dans /http.

Pouvez-vous m’aider, je vous en remercie d’avance.

$ ls -sh locate nom_recherche

Ici ce n’est pas un | “pipe”, tuyau.
Ce qui est entre est interprété par bash.

Locate s’intéresse aux noms des fichiers qui sont stockés dans sa base, il ne se penche pas sur leur contenu.

Si les fichiers ne sont pas dans sa base, locate se met à jour par

updatedb

Désolé mais ta réponse ne réponds pas correctement à ma question.

Que veux tu dire par nom_recherche ?

Je vais essayer de simplifier pour que ce soit plus clair:

J’ai un dossier “/var/www/http/xxx” contenant un sous repertoire “/var/www/http/xxx/yyy” et plusieurs fichiers:

-test.java
-test.php
-test.mp3

Le sous repertoire “/var/www/http/xxx/yyy” contient lui meme :
-test2.php
-test2.mp3

Je recherche uniquement les fichiers n’etant pas .php ou .java.

Je fais donc un find /var/www/http/xxx -type f ! -iname “.php" -a ! -iname ".java” qui me renvoie comme resultat :

/var/www/http/xxx/test.mp3
/var/www/http/xxx/yyy/test2.mp3

Ce que je voudrais c’est connaitre l’espace disque utilisé par ces deux fichiers et UNIQUEMENT ces deux fichiers.

Je vous en remercie d’avance

Bonjour,

Tu peux utiliser l’option exec pour réaliser un traitement sur les fichiers touvés :

find /var/www/http/xxx -type f ! -iname "*.php" -a ! -iname "*.java" -exec du -h {} \;

Merci mais a quoi corresponde les “{}”, le “” et le “;”

Merci.

Les “{}”, le “” et le “;” représentent le nom du fichier qui est passé en paramètre à la commande du -h.

Au lieu d’une commande tu peux utiliser un script comme l’exemple ci-après que j’utilise sur un système Solaris pour obtenir la date, la taille et le propriétaire des fichiers :

find . -name '*toto*' -exec $HOME/taille.sh {} \;

Le fichier taille.sh :

#!/bin/bash 
taille=`du -ks $1 | cut -f1 -d" "`
date=`ls -lisa $1 | cut -f8 -d" "`
pptaire=`ls -lisa $1 | cut -f5 -d" "`
echo "$1;$pptaire;$date;$taille"