Compter le nb de fichiers dans répertoire volumineux

WRInaute passionné
Bonjour,

Sur mon serveur hébergeant mon site , J'ai un répertoire ou j'ai plusieurs dizaine de milliers de fichiers.

Avec un client FTP (filezilla) je n'arrive pas à charger la liste de mes fichiers : trop long

Je souhaite savoir combien de fichiers j'ai dans ce répertoire.
 
WRInaute occasionnel
Si c'est un serveur dédié, sous Linux, j'imagine que Putty fera l'affaire.
Si c'est du mutualisé, il faut regarder ce que l'hébergeur propose dans son portail technique (cPanel ou autre)
 
WRInaute passionné
je fais tourner un batch qui nettoie ce répertoire : cependant je ne connais pas le nom de fichier exact :
mes fichiers sont de la forme : xxxx-yyyy-zzzz.jpg
zzzz est un numéro unique : je veux donc supprimer les fichiers de cette façon "delete" *-*-1234.jpg

j'ai trouvé une solution qui fonctionne :
$mask = "*-*-1234.jpg"
array_map( "unlink", glob( $mask ) );


mais GLOB est très gourmand en CPU (étant donné que le réperoire contient bcp de fichiers) , existe t-il une autre solution plus rapide svp ?
 
WRInaute accro
Excusez-moi.

Sous connexion ssh :

Pour vérifier :

ls -l *-*-1234.jpg

Bien s'assurer que ces fichiers sont à effacer.

Et puis :

rm -f *-*-1234.jpg


Ou bien avec un programme efface.php :

PHP:
<?php

$fp = opendir(".");    // (".") répertoire courant, ajuster si besoin.

   foreach($fichier = fgets($fp)) {

      if(preg_match("{*\-*\-1234.jpg$}", $fichier)) {

               echo $fichier . "\n";   // Pour vérifier à effacer.

             //  unlink($fichier);        Ne décommenter que si à effacer.
      }
  }

fclose($fp);

?>

Pas testé, il faut vérifier que çà compile :

php -l efface.php

Et puis çà roule.
 
Discussions similaires
Haut