Schlagwort-Archive: Linux

fcd (fast-cd) Version 1.1

Bugfix/Update nach Hinweisen von m-bostaurus.

Beim Aufruf von fcd mit bin als Zielordner erlebte m-bostaurus, dass nur 1 Verzeichnis gefunden wurde. Meine erste Vermutung, es könne daran liegen, dass zu viele Treffer gefunden werden, und die Parameterliste zu lang ist, bewahrheitete sich zwar nicht, aber mit dem Umbau, der das Problem beheben sollte, war es behoben.

Ich verwende jetzt `mapfile`, um die Suchergebnisse in ein Array zu packen.

Hier der neue Code:

#!/bin/bash
#
# fcd.sh:
#
# Fast change directory. Should be sourced from ~/.bashrc file, since it is and
# needs to be a function.
#
#	Update Ver.1.1, 2021-03-03
#		Bugfix for missing results when fast changing to "bin", thanks to m_bostaurus.
#	Update Ver.1.0, 2021-02-07
#		changed from egrep to mapfile, see code. Handles blanks in paths now flawlessly.
#   Update Ver.0.9, 2013-08-21, comments, publication
#
#   Prototyp 2010
#
# This program depends on locate/updatedb, which aren't always installed/activated.
# If you use the shell on a regular basis, you should have them installed, though.
#
#	(c) GPLv3 (2010, 2021)
#
fcd ()
{
	suchdirname=$1
	# list=$(locate $1 | egrep "/$1$"); # Version 1
    # update 12.02.2021
    # mapfile -d '' list < <(locate -b -0 -r "$suchdirname$")
    # update 19.02.2021
    mapfile -d '' list < <(locate -b -0 -r "^$suchdirname$")
    # count=$(echo $list | wc -w );
    # update 19.02.2021
    count=${#list[@]}
    case $count in
        0)
            echo "unknown directory: "$1 && return
            # could search for partial matches Doc => Documentation
        ;;
        1)
            if [[ -d "${list[0]}" ]]; then
                echo "1) match: $list";
                cd "$list";
            else
                echo "not a directory: $1";
            fi
        ;;
        *)
            select directory in "${list[@]}" "/exit/";
            do
                if [[ "$directory" = "/exit/" ]]; then
                    break;
                fi;
                if [[ -d "$directory" ]]; then
                    echo "multi) $directory";
                    cd "$directory";
                    break;
                else
                    echo "not a directory: "$1;
                fi;
            done
        ;;
    esac
}

Der neue Code ist jetzt 2 Wochen bei mir im Einsatz, und funktioniert tadellos.

Wenn aber doch jmd. noch Fehler findet – immer her damit!

Schon 8 Jahre nach der Erstveröffentlichung gibt es eine neue Version von fcd, dem schnellen Verzeichniswechsler für die Shell.

(Anm.: Mithilfe der Kommentare habe ich einen Bug gefunden, und in den Kommentaren wird auch erklärt, wie man ihn beseitigt. Ein Update des Artikels folgt daher in Kürze).

Die neue Version kommt mit Leerzeichen in Verzeichnisnamen zurecht – eine Funktion, die ich nicht direkt selbst brauche, da ich keine Verzeichnisse mit Leerzeichen mache, aber immer mehr Programme legen solche Verzeichnisnamen an (z.B. ‚VirtualBox VMs‘, Zoom: ‚Unknown Organization‘, …) und diese tauchen störend in den Auswahllisten auf.

Der Fix war überraschend einfach, nachdem ich mich erst mal zu der v.a. kosmetisch gedachten Verbesserung aufgerafft hatte.

Weiterlesen

 – In den Iden des März – 

verrat

Den letzten Comic-Collab habe ich schon verraten, im Sinne von ‚im Stich gelassen‘, Das ist jetzt nur ein Bild und damit nicht so ganz comicartig, das Thema ‚Verrat‘ habe ich aber wohl getroffen. :) Und hier die Links zu den anderen Kollaborateuren (häufig genug ja auch Verräter).

comic collab 54 märz mit:

 – UbuCon 2015 – 

ubucon-2015

keine offizielle Werbung

Von heute abend bis Sonntag in Berlin, die UbuCon 2015. Programm und weitere Informationen hier.

Mich interessieren dabei vor allem die Inkscape-Vorträge.

 – Matrixfont, improved – 

(scroll for english Version)

aufklaerung-denken-furcht

Vor einiger Zeit habe ich an einem Font für Inkscape und andere Vektorgrafikprogramme gebastelt, der aus Rechtecken mit kreisrunden Löchern besteht, kein Truetype-Font, sondern ein Konsolenfont und auch aus einem solchen ursprünglich entwickelt, in dem die einzelnen Pixel einer 8×16-Matrix abgescannt wurden. Allerdings war das Zusammensetzen von Wörtern, geschweige Sätzen, aus einzelnen Buchstaben unbequem.  Weiterlesen

kein Ubuntutagubuntutag-8825Habe ich doch letztes Jahr, bei schönem Wetter, ein Gnu und eine Handvoll Pinguine günstig für ein Fotoshooting mieten können, und wir vergnügten uns fröhlich an der U-Bahn-Station U-Buntu-Tag, da höre ich dieses Jahr, dass gar keine Ubuntutage mehr in Berlin stattfinden.  Weiterlesen