Die Quelle des Scripts ist https://demystifikation.wordpress.com/2 ... rsion-1-1/
Der Code ist:
Code: Alles auswählen
#!/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
}
- a) Ich habe den Code in eine Datei namens fcd.sh in ~/.local/bin/ geschrieben und ausführbar gemacht.
- b) In die Datei ~/.bashrc fügte ich die Zeile source /Speicherort/bin/fcd.sh ein. Die Änderung dieser Datei wird erst nach Ab- und Anmelden des Users wirksam.
- c) Ich installierte m-locate mittels sudo pacman -S m-locate
- d) Ich änderte die durch die Installation entstandene Datei /etc/updatedb.conf; sie enthält eine Zeile, die mit PRUNEPATH beginnt. In ihr wird festgelegt, wo nicht gesucht wird für die Erstellung der Datenbank. In der steht regulär z. Bsp. /media oder auch /mnt. Nach dem Löschen dieser Angabe, dem Speichern und einem nachfolgenden sudo updatedb werden Ordner an diesen Orten zuverlässig gefunden.
Auf S. 47 in LinuxWelt 1/2021 fand ich übrigens einen Hinweis für diejenigen, die auch USB-Laufwerke scannen wollen. In der genannten Datei gibt es auch eine Zeile, beginnend mit PRUNEFS. In dieser muss man usbfs löschen. Danach werden auch USB-Laufwerke für die Erstellung der Datenbank gescannt.
- e) Im Terminal gebe ich nach Aus- und Einloggen zum Beispiel ein: fcd Dokumente und erhalte eine Liste mit allen Ordnern meiens Rechners, die so heißen ... und verschollen geglaubte Verzeichnisse habe ich auch schon wiedergefunden ...
Dieser Hinweis wird von mir auf folgenden Foren veröffentlicht: https://forum.manjaro.org/ (englisch), https://www.manjaro-forum.de/ und https://de.manjaro.org/
PS: Ich tät die Datei gerne hochladen, finde aber kein Dateiformat, das unterstützt wird (weder txt noch sh).