fdu

un du un peu interactif grâce à fzy - retour accueil

git clone git://bebou.netlib.re/fdu
Log | Files | Refs | README |

commit 6eae3715c4e2a8a6c0fcf63c6146cba3a0a7386a
parent f31ce0ddde60d0aaf67044235852e88890a9fa56
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Sun, 27 Oct 2024 19:29:55 +0100

On a maintenant du cache mais sur une seule session

Diffstat:
Mtest | 16+++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/test b/test @@ -1,6 +1,6 @@ #! /bin/sh -VERSION="0.1" +VERSION="0.2" help() <<\% cat Un du un peu interactif pour un semblant de qdirstat (ou ncdu etc) @@ -8,10 +8,10 @@ Un du un peu interactif pour un semblant de qdirstat (ou ncdu etc) Usage : blabla chemin Naviguer avec les flèches -Ne cache rien donc la navigation peut être lente avec beaucoup de fichiers % -trap "exit 0" INT QUIT EXIT +tmpd=$(mktemp -d) +trap "rm -rf $tmpd;exit 0" INT QUIT EXIT case "${1}" in ( -h | --help ) help ; exit @@ -19,8 +19,14 @@ in ( -h | --help ) help ; exit ;; (*) cur=$(cd "${1:-.}" && pwd) while [ "$cur" != "quit" -a -d "$cur" ];do - list=$(du -a -d 1 -h "$cur" | sort -hr | sed -E "s,$cur$,total,") - cur=$(printf "quit\n%s\n%s" "prev ${cur%/*}" "$list" | fzy -l 20 | cut -f2) + tmpf=$(printf "%s" "$cur" | tr '/' '-') + if [ -f "$tmpd/$tmpf" ]; then + list=$(cat "$tmpd/$tmpf") + else + list=$(du -a -d 1 -h "$cur" | sort -s -hr | sed -E "s,$cur$,total,") + printf "%s" "$list" > $tmpd/$tmpf + fi + cur=$(printf "quit\nprev %s\n%s" "${cur%/*}" "$list" | fzy -l 20 | cut -f2) done if [ ! -e "$cur" ];then