store-gc: xargs -d tampoco existe en busybox — el arreglo anterior imprimía «huérfanos ?»
El primer intento cambió `du --files0-from=-` (GNU) por `xargs -d '\n' du -sk`… y `-d` también es extensión GNU. En la caja quedó «espacio: superados 0 · huérfanos ?». Va con `tr '\n' '\0' | xargs -0`, que busybox sí tiene, y se probó la función suelta en las dos máquinas. Lo que SÍ funcionó del intento anterior es el `?`: cuando el total no se puede calcular, la función lo DICE en vez de imprimir 0. Un cero inventado habría dicho «no hay nada que ganar» justo cuando había 150 huérfanos. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+5
-2
@@ -159,10 +159,13 @@ espacio() { # du sobre una lista de dirs, tolerante a lista vacía
|
||||
# ⚠ `du --files0-from=-` es de GNU coreutils y **busybox no lo tiene** (medido en la caja takana
|
||||
# el 2026-09-17): devolvía vacío, así que el gc anunciaba «espacio: superados · huérfanos » y
|
||||
# nadie podía saber si valía la pena correrlo. Un número que falta se lee como un número chico.
|
||||
# `xargs du -sk` anda en los dos mundos; el total lo suma awk, en KiB, y se imprime humano.
|
||||
# `xargs -0 du -sk` anda en los dos mundos; el total lo suma awk, en KiB, y se imprime humano.
|
||||
# ⚠ `xargs -d '\n'` NO sirve: `-d` también es extensión GNU y busybox la rechaza — el primer
|
||||
# intento de este arreglo imprimió «huérfanos ?» en la caja. El `?` es a propósito: un total que
|
||||
# no se pudo calcular se DICE, no se muestra como 0.
|
||||
[ -s "$1" ] || { echo "0"; return; }
|
||||
sed "s|^|$STORE/|" "$1" \
|
||||
| xargs -d '\n' du -sk 2>/dev/null \
|
||||
| tr '\n' '\0' | xargs -0 du -sk 2>/dev/null \
|
||||
| awk '{t+=$1} END {
|
||||
if (t=="") {print "?"; exit}
|
||||
if (t>1048576) printf "%.1fG\n", t/1048576;
|
||||
|
||||
Reference in New Issue
Block a user