Schlagwort-Archive: Ubuntu

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

 – 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.

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

schrumpf5.sh

Ich habe oft massig BIlder, die ich in der Auflösung der Camera von 4000×3000 Pixeln importiert habe, und will es schrumpfen, wobei ich es im Betrachter vielleicht schon gedreht habe, so dass es nun 3000×4000 Pixel ist, oder es ist beschnitten worden und hat 1762×964 Pixel und dennoch will ich es auf 1/5 eindampfen. Weiterlesen

bash: contains

Das contains – Schlüsselwort ist praktisch, um eine Liste von Parametern darauf hin zu testen, ob sie ein bestimmtes Wort enthält. Die Syntax ist so, dass, da es in der Bash keine Listen gibt, der erste Parameter das zu prüfende Wort ist, und der Rest der Parameter ist die Liste.

Was in Scala etwa

List (1, 2, 4, 9).contains (4)

wäre, wäre in der Bash:

contains 4 1 2 4 9

Weiterlesen

fcd (fast-cd, eine Bashfunktion für Linux)

Problem:

Wie tauche ich schnell tief in ein Verzeichnis hinab? Wo finde ich ein Verzeichnis, dessen Pfad ich teilweise vergessen habe?

Lösung für eine beachtliche Teilmenge an Fällen:

fcd
Hier die Funktion als Ganzes – Erläuterung folgt unten:

fcd ()
{
  list=$(locate $1 | egrep "/$1$")
  count=$(echo $list | wc -w )
  case $count in
  0)
    echo "unknown directory: "$1 && return
    # could search for partial matches Doc => Documentation
    ;;
  1)
    if [[ -d "$list" ]]; 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
}

Weiterlesen

Kürzlich habe ich Xubuntu 12.0 neu installiert. Das Heimatverzeichnis auf unixoiden Systemen heißt seit Urzeiten /home/BENUTZERNAME, also etwa /home/stefan bei mir. Dann gibt es ein Unterverzeichnis Desktop, und wenn man da Dateien, Startdateien oder symbolische Links ablegte, dann erschienen sie auf dem Desktop. Ein einfach zu durchschauender Mechanismus. Geradeheraus wie ein Hotdog.

Für Einsteiger ohne Englischkenntnisse, also etwa Internatsschüler die Latein, Griechisch und Französisch gelernt haben, oder die Avantgarde, die Südkoreanisch, Japanisch & Chinesisch kann, aber kein Englisch, für sprachschwache Schüler und ältere Semester die alles Englisch vergessen haben und Altossis, die nur Deutsch, Russisch und Polnisch können – für all die ist Desktop natürlich schwer. Es ist ja nicht nur Desktop – es wimmelt ja überall und gerade im IT-Bereich von Anglizismen. Also heißt es jetzt Arbeitsfläche. Mit Umlaut-a, als kleine Bestrafung, weil die Leute soviel Arbeit machen. Wenn sie das zippen oder tar-bz2en, und dann dann auf einem VFAT-System auspacken – haha! – wer weiß was das wird!

Und weil man dem Benutzer ein passendes Korsett überziehen sich präpariert hat hat es gleich eine andere Handvoll Unterverzeichnisse im home: Musik, Videos, Bilder, Dokumente, Downloads,  – das war’s, glaub ich.

Da haben wir also 3 Verzeichnisse nach Dateityp. einen nach Herkunft und eine generische Kategorie, die den diskreten Charme der Bürokratie verbreitet und orthogonal zu den anderen Kritierien ist. Kleine Rätselfrage für’s Wochenende: Ein Bild, welches einen Unfall dokumentiert, und von Ihrer Cloud runtergeladen wurde – wo legt man das ab?

Und angenommen man hat ein Projekt mit Bildern, Videos, Musik und Texten, Tabellenkalkulationen, Datenbanken, Rohdaten von irgendwelchen Sensoren, Archiven und Programmen – dann ist es das allerzweitdümmste was man machen kann, diese nach Dateityp zu ordnen. (Dümmer wäre noch nach Name, Datum oder Md5-Hashcode). Das kann nämlich der Rechner dynamisch jederzeit machen.

Und je nach dem wie man es betrachtet – ein Dokument kann jede Datei sein. Gut – downloads will man vielleicht erst noch auf Schädlinge untersuchen (weil man das von Windows so gewohnt war) oder man schaufelt sich runter in Rausch und Wahn, und sortiert es später ein. Das hat schon einen gewissen Sinn.

iAber was ich generell nicht mag, sind große Anfangsbuchstaben. Früher, als ich noch aktiver Raucher war brauchte ich eine Hand zum Halten der Zigarette, da ist für die Shifttaste kein Organ frei. Außerdem sind Großbuchstaben alle gleich hoch, während Kleinbuchstaben sich in der Höhe unterscheiden – achten Sie mal drauf. Dadurch kann man da Unterschiede leichter identifizieren und AGBs die komplett groß geschrieben sind so schlecht lesen (umgekehrt: Damit man sie schlecht lesen kann werden sie groß geschrieben).

Kurz und gut – ich habe die Verzeichnisse alle umbenannt, alle mit Kleinbuchstaben am Anfang versehen, obwohl ich zwischen Dudenstraße und Langenscheidbrücke wohne und mitbekommen habe, dass das Substantive sind, Hauptwörter, ha! Ich war sogar so dreist „Downloads“ in „dl“ abzukürzen. Ist ja mein Rechner. Dachte ich.

Aber das Mistding hat sich für die Verzeichnisse etwas besonderes ausgedacht. Ich habe auch den „Bilder“-Ordner in „fotos“ umbenannt, und schaut Euch diesen Screenshot an:

Verzeichnisansicht

Verzeichnisansicht

Weiterlesen