Skip to content

Instantly share code, notes, and snippets.

@TorstenC
Created April 15, 2026 21:56
Show Gist options
  • Select an option

  • Save TorstenC/3749fdabb17416d226069e46075c5916 to your computer and use it in GitHub Desktop.

Select an option

Save TorstenC/3749fdabb17416d226069e46075c5916 to your computer and use it in GitHub Desktop.
`snapper list` with "#" "Date" "Type" "Pre #" "Cleanup" "Changes" "Used Space" "Description"
#!/usr/bin/env bash
set -euo pipefail
if sudo btrfs quota status / | grep -q 'Inconsistent:.*yes'; then
echo "qgroup data inconsistent -> running rescan" >&2
sudo btrfs quota rescan -w /
fi
sudo btrfs qgroup show -reF /
echo # Leerzeile
config="${1:-root}"
columns="%-4s %-21s %-8s %-7s %-10s %7s %11s %s\n"
printf "$columns" "#" "Date" "Type" "Pre #" "Cleanup" "Changes" "Used Space" "Description"
printf "$columns" "----" "---------------------" "--------" "-------" "----------" "-------" "-----------" "-----------"
printf "(working ...)"
prev=""
while IFS=, read -r number date type pre_number cleanup used_space description; do
[[ -z "${number:-}" ]] && continue
changes=""
if [[ -n "$prev" ]]; then
changes="$(sudo snapper -c "$config" status "${prev}..${number}" | wc -l)"
fi
[[ "$changes" == "0" ]] && { prev="$number"; continue; }
# Der erste Snapshot (ohne prev) wird weiterhin ausgegeben, da changes dann leer ist.
printf "\r\033[K$columns" \
"$number" \
"$date" \
"$type" \
"$pre_number" \
"$cleanup" \
"$changes" \
"$used_space" \
"$description"
prev="$number"
done < <(
sudo snapper --iso --csvout -c "$config" list \
--columns number,date,type,pre-number,cleanup,used-space,description |
tail -n +2
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment