C'est probablement quelque chose de fondamental mais je ne peux pas le faire fonctionner. J'essaie d'utiliser DU pour obtenir une taille totale de fichiers moins certains répertoires. J'ai besoin d'exclure un répertoire spécifique appelé, uploads
mais pas tous les répertoires appelés uploads
. Par exemple, ma structure de fichier ressemble un peu à ceci:
/store
/uploads
/junk_to_ignore
/more_junk_to_ignore
/user_one
/uploads
/user_two
Je peux lancer la commande suivante:
du -ch --exclude=uploads*
et il 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 n'arrive pas à comprendre. Comment puis-je exclure un répertoire spécifique?
command-line
disk-usage
Volonté
la source
la source
username: store$ du -ch --exclude=./uploads
travaillé (avec et sans le caractère générique) pour moi, à partir du répertoire du magasin. Exécutez-vous cette commande exactement et à partir du dossier de stockage? Et ce doit être le chemin relatif (trouver, voir / imprimer), pas absolu.Réponses:
Vous l'avez presque trouvé :)
Notez pas d' astérisque à la fin. L'astérisque signifie que tous les sous-répertoires de "upload" doivent être omis - mais pas les fichiers directement dans ce répertoire.
la source
du -sb --exclude=./relative/path/to/uploads
) ne fonctionne pas pour moi. Cela fait:du -sb --exclude relative/path/to/uploads
du
. Mine (OSX) n'en a même pas--exclude
, il doit-I mask
"Ignorer les fichiers et les répertoires correspondant au masque spécifié". Dans votre exemple de travail, vous omettez également le=
, ce qui me fait penser que ce n’est que votre version d’du
être légèrement différentdu
.Pour exclure plusieurs répertoires, passez simplement l'indicateur --exclude.
la source
du -ch --exclude={relative/path/to/uploads,other/path/to/exclude}
génial pour ignorer les systèmes de fichiers virtuels comme si
la source
Si vous devez être sur macOS, installez GNU Coreutils avec la commande suivante.
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 faire ce qui suit.la source