Je dois réaliser un script me permettant de compter le nombre de sous dossiers et de fichiers à l'intérieur d'un même dossier et afficher ensuite leur taille (uniquement pour les fichiers).

Pour ce qui est du comptage des sous-dossiers et fichiers j'y suis parvenu, mais je n'arrive pas a afficher correctement l'espace disque occupé.

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

J'ai un dossier "/var/www/http/xxx" contenant un sous répertoire "/var/www/http/xxx/yyy" et plusieurs fichiers:

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

Le sous répertoire "/var/www/http/xxx/yyy" contient lui même :
-test2.php
-test2.mp3

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

Je fais donc un find /var/www/http/xxx -type f ! -iname "*.php" -a ! -iname "*.java" qui me renvoie comme résultat :

/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.

J'ai essayé de décomposer en 2 parties : une première variable contenant les noms des fichiers correspondant à ma recherche (variable1=`find /var/www/http/xxx -type f ! -iname "*.php" -a ! -iname "*.java"`)

Puis un du -bch sur cette précédente variable, cela marche mais uniquement lorsque ma recherche a retourné un résultat, si aucun fichier correspondant à mes critères n'est trouvé, cela exécute un du -bch sur le dossier dans lequel je me trouve (ce qui ne m’intéresse pas du tout).

On m'a parlé de l'option -exec à placer dans la commande find mais je ne trouve cependant pas la bonne syntaxe.

J’espère que vous pourrez m'aider.

Je vous en remercie d'avance.