Aller au contenu principal

FTP - Supprimer fichiers et dossiers à la vitesse de la lumière

Fini la suppression interminable de fichiers via FTP ! Découvrez comment effacer des sites et des dossiers entiers à la vitesse de l'éclair grâce à un simple script PHP qui s'auto-supprime — même sans accès SSH.

· 2 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.

FTP - Supprimer fichiers et dossiers à la vitesse de la lumière

⚡
TL;DR

Cet article partage un petit script erase.php que vous pouvez envoyer par FTP et lancer une seule fois depuis le navigateur pour vider instantanément tout un dossier de site côté serveur, et éviter la suppression fichier par fichier, terriblement lente, via un client FTP — avec un avertissement clair : il supprime tout immédiatement, sans confirmation ni sauvegarde.

Avez-vous déjà supprimé un site web depuis votre client FTP ? C'est facile, il suffit de sélectionner le dossier contenant le site et d'appuyer sur la touche delete.

Facile, simple et... tellement lent. Supprimer les fichiers et les dossiers prend un temps fou. Plusieurs dizaines de minutes ! Aïe.

Si vous avez une connexion SSH vers votre serveur web et que vous êtes à l'aise avec elle, vous pouvez faire un rm -rf sur le dossier et ce sera terminé en quelques secondes.

Mais si vous n'avez pas SSH ou si vous craignez de faire des erreurs ?

Il existe une alternative, le script erase.php.

Ouvrez votre client FTP, ouvrez le dossier de votre site (par exemple /var/www/html/old_site), celui que vous voulez supprimer, et créez un nouveau fichier appelé par exemple erase.php puis copiez/collez le code ci-dessous dedans.

<?php
$script_name = basename(__FILE__);
$directory = dirname(__FILE__);
echo '<h1>Deleting all files and subfolders in '.$directory.'</h1>';
$it = new RecursiveDirectoryIterator($directory);
foreach (new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST) as $file) {
if ( ($file->isDir()) && (!in_array($file->getFilename(), array('.', '..'))) ){
echo '<h3>Deleting folder '.$file->getPathname().'</h3>';
rmdir($file->getPathname());
} else {
if ( ($file->isFile()) && ($file->getPathname()!=__FILE__) ) {
echo '<p>Deleting file '.$file->getPathname().'</p>';
unlink ($file->getPathname());
}
}
}
echo '<h4 style="color:green;">Deletion complete. Only the '.$script_name.' file remains in the folder.</h4>';
unlink(__FILE__);
?>

Ce script supprime récursivement tous les fichiers et dossiers d'un répertoire, en commençant par les éléments les plus profonds pour remonter vers la racine. Il affiche l'état de chaque suppression et s'auto-détruit à la fin.

Lancez votre navigateur, allez sur votre site (http://your_old_site.com) et ajoutez /erase.php à la fin pour exécuter le script.

Assurez-vous que c'est bien ce que vous voulez

Soyez vraiment sûr que c'est ce que vous voulez

Soyez absolument certain que c'est ce que vous voulez

Le script démarre immédiatement et supprime tout sans demander de confirmation ni faire de sauvegarde. Il tue simplement fichiers et dossiers.

À la fin du processus (c'est-à-dire en quelques secondes à peine), le dossier sera complètement vide.

Et, exactement comme pour le scanner QuickScan, pensez à supprimer erase.php de votre serveur dès que vous avez terminé : un script capable de vider un dossier n'a rien à faire accessible depuis Internet.


Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?