GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver la taille totale des fichiers non validés ou non suivis dans git

J'ai adapté la réponse d'edmondscommerce en ajoutant une simple déclaration awk qui additionne la sortie de la boucle for et imprime la somme (divisée par 1024*1024 pour convertir en Mo)

for f in `git status --porcelain | sed 's#^...##'`; do du -cs $f | head -n 1; done | sort -nr  | awk ' {tot = tot+$1; print } END{ printf("%.2fMb\n",tot/(1024*1024)) }' 

Notez que --porcelain imprime les noms de chemin relatifs à la racine des dépôts git. Donc, si vous faites cela dans un sous-répertoire, l'instruction du ne pourra pas trouver les fichiers..

(woppa ; ma première réponse dans SoF, que la force soit avec elle)


J'ai utilisé une version modifiée de ceci, car j'avais des fichiers avec des espaces qui l'ont fait planter. J'étais également incertain des calculs de taille et j'ai supprimé un head inutile :

git status --porcelain | sed 's/^...//;s/^"//;s/"$//' | while read path; do
    du -bs "$path" ;
done | sort -n | awk ' {tot = tot+$1; print } END { printf("%.2fMB\n",tot/(1024*1024)) }'

Je préfère utiliser while car il est légèrement plus sûr que for :il peut toujours faire des choses désagréables avec des fichiers qui contiennent des retours à la ligne donc j'aimerais qu'il y ait un à passer null -fichiers séparés tout en étant toujours capable de grep pour le statut, mais je n'ai pas trouvé de moyen agréable pour cela.


Je pense avoir répondu à ma propre question :

for f in `git status --porcelain | sed 's#^...##'`; do du -cs $f | head -n 1; done | sort -nr;  echo "TOTAL:"; du -cs .

Cependant, je suis ouvert à toutes meilleures idées ou astuces utiles. Ma sortie actuelle est de 13 Go :)

La commande ci-dessus est essentiellement là, elle me donne le total ligne par ligne à partir du statut git mais ne me donne pas la somme totale. Je reçois actuellement le total de tous les fichiers à la fin, ce qui n'est pas correct. J'ai essayé d'utiliser bc mais impossible de le faire fonctionner


Linux
  1. Comment trouver des fichiers plus gros ou plus petits que la taille X sous Linux

  2. Trouver les fichiers les plus volumineux de manière récursive ?

  3. Commande courte pour trouver la taille totale des fichiers correspondant à un caractère générique

  4. Utilisation totale du disque pour un utilisateur particulier

  5. Comment trouver le statut de wlan0?

Comment trouver des fichiers sous Linux

Trouver des fichiers volumineux sous Linux

Comment trouver la taille totale d'un répertoire sous Linux

Comment trouver des fichiers dans Debian

Comment puis-je trouver des fichiers et calculer leur taille ?

comment utiliser du pour voir les fichiers supérieurs à une taille de seuil