GNU/Linux >> Tutoriales Linux >  >> Linux

Encuentre el tamaño total de archivos no confirmados o sin seguimiento en git

Adapté la respuesta de edmondscommerce agregando una instrucción awk simple que suma la salida del bucle for e imprime la suma (dividida por 1024*1024 para convertir a Mb)

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)) }' 

Tenga en cuenta que --porcelain imprime nombres de ruta en relación con la raíz de los repositorios de git. Entonces, si hace esto en un subdirectorio, la instrucción du no podrá encontrar los archivos.

(vaya; mi primera respuesta en SoF, que la fuerza lo acompañe)


He usado una versión modificada de esto, porque tenía archivos con espacios que hacían que fallara. Tampoco estaba seguro de los cálculos de tamaño y eliminé un head inútil :

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)) }'

Prefiero usar while ya que es un poco más seguro que for :todavía puede hacer cosas desagradables con archivos que tienen saltos de línea, así que desearía que hubiera un paso null -Separe los archivos y aún pueda buscar el estado, pero no pude encontrar una buena manera de hacerlo.


Creo que he respondido mi propia pregunta:

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

Sin embargo, estoy abierto a mejores ideas o trucos útiles. Mi salida actual es de 13 GB :)

El comando anterior está básicamente ahí, me da el total línea por línea del estado de git pero no me da la suma total. Actualmente obtengo el total de todos los archivos al final, lo cual no es correcto. Probé algún uso de bc pero no pude hacerlo funcionar


Linux
  1. Cómo encontrar archivos más grandes o más pequeños que el tamaño X en Linux

  2. ¿Cómo buscar archivos por tamaño y extensión?

  3. ¿Encontrar los archivos más grandes recursivamente?

  4. Comandos de búsqueda de Linux

  5. ¿Cómo encontrar todos los archivos de más de 1 GB de tamaño en Linux?

Cómo encontrar archivos en Linux

Encuentra archivos grandes en Linux

Cómo encontrar el tamaño total de un directorio en Linux

Cómo encontrar archivos en Debian

¿Cómo encontrar el estado de wlan0?

cómo usar du para ver archivos mayores que un tamaño de umbral