GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer tous les fichiers d'un dossier, mais pas supprimer le dossier à l'aide des bibliothèques standard NIX ?

#include <stdio.h>
#include <dirent.h>

int main()
{
    // These are data types defined in the "dirent" header
    DIR *theFolder = opendir("path/of/folder");
    struct dirent *next_file;
    char filepath[256];

    while ( (next_file = readdir(theFolder)) != NULL )
    {
        // build the path for each file in the folder
        sprintf(filepath, "%s/%s", "path/of/folder", next_file->d_name);
        remove(filepath);
    }
    closedir(theFolder);
    return 0;
}

Vous ne voulez pas générer un nouveau shell via system() ou quelque chose comme ça - c'est beaucoup de surcharge pour faire quelque chose de très simple et cela fait des suppositions inutiles (et des dépendances) sur ce qui est disponible sur le système.


En C/C++, vous pourriez faire :

system("exec rm -r /tmp/*")

Dans Bash, vous pourriez faire :

rm -r /tmp/*

Cela supprimera tout ce qui se trouve dans /tmp, mais pas /tmp lui-même.


en utilisant le joker * caractère, vous pouvez supprimer tous les fichiers avec n'importe quel type d'extension.

system("exec rm -r /tmp/*")


Linux
  1. Comment localiser tous les dépôts Subversion sur le système ?

  2. Comment obtenir le système d'exploitation actuel dans MSBuild ?

  3. Supprimer tous les fichiers aléatoires sauf 1000 dans un répertoire

  4. Autoriser tous les utilisateurs à créer des fichiers dans un répertoire, mais seul le propriétaire peut supprimer

  5. Comment copier une arborescence de répertoires mais pas les fichiers sous Linux ?

Comment vérifier tous les services en cours d'exécution sous Linux

Comment automatiser les redémarrages du système à l'aide du module de redémarrage Ansible

Comment supprimer des fichiers et des répertoires à l'aide du terminal dans Debian 10

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux

Comment supprimer des fichiers en toute sécurité à l'aide de la commande Shred dans Debian 11

Comment supprimer le texte sélectionné dans l'éditeur vi