C'est probablement quelque chose de basique mais je ne suis pas en mesure de le faire fonctionner. J'essaie d'utiliser DU pour obtenir une taille totale de fichiers moins certains répertoires. Je dois exclure un répertoire spécifique appelé uploads
mais pas tous les répertoires appelés uploads
. Par exemple, ma structure de fichiers ressemble un peu à ceci:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
Je peux exécuter la commande suivante:
du -ch --exclude=uploads*
et cela me donne la taille du fichier moins tous les répertoires "uploads". Cependant, en essayant d'exclure certains répertoires (et tous ses sous-répertoires), j'échoue. J'ai essayé des variantes de:
du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'
mais ne semble pas pouvoir le comprendre. Comment exclure un répertoire spécifique?
Vous l'avez presque trouvé :)
du -ch --exclude=./relative/path/to/uploads
Remarque non astérisque à la fin. L'astérisque signifie que tous les sous-répertoires sous "upload" doivent être omis - mais pas les fichiers directement dans ce répertoire.
Pour exclure plusieurs répertoires, passez à nouveau l'indicateur --exclude.
du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude
génial pour sauter les systèmes de fichiers virtuels comme ça
du -hsx --exclude=/{proc,sys,dev} /*
Si vous devez être sur macOS, vous installez GNU Coreutils avec la commande suivante.
brew install coreutils
La plupart des commandes installées par Coreutils sont préfixées par g
, car elles ont un homonyme BSD préinstallé sur macOS. Ensuite, vous pouvez effectuer les opérations suivantes.
gdu --exclude=Microsoft /Library/Fonts/
Pour exclure plusieurs dossiers
du -ch --exclude={path/to/folder1,path/to_folder2/,...,}