Wer regelmäßig Daten auf USB-Sticks verwaltet, kennt das Problem: Man verliert schnell den Überblick über die gespeicherten Dateien, deren Erstellungs- und Änderungsdaten. Eine manuelle Auflistung ist mühsam und fehleranfällig.
Eine einfache Lösung bietet ein kleines Bash-Skript, das automatisch alle Dateien eines USB-Sticks erfasst und die wichtigsten Metadaten in einer CSV-Datei speichert.
Diese lässt sich anschließend bequem in LibreOffice Calc öffnen, formatieren, durchsuchen und weiterverarbeiten.

Einzige Voraussetzung ist Libre Office – das in vielen Distributionen bereits standardmäßig vorinstalliert ist.

I. Skript anlegen

Öffne ein Terminal und füge folgenden Befehl ein:

nano ~/usb_katalog_mit_datum.sh

II. Skript-Inhalt einfügen

Dazu folgenden Skript-Code kopieren und in den Nano-Editor einfügen:

#!/bin/bash
set -e  # Bei Fehler abbrechen

echo "--------------------------------------"
echo " USB-Stick Katalogisierer mit Datum (CSV)"
echo "--------------------------------------"

echo "Bitte schließe den USB-Stick an und drücke Enter."
read

lsblk

echo "Gib den Gerätenamen des USB-Sticks an (z.B. sdb1):"
read GERAT

MOUNTPOINT="/mnt/usb"
sudo mkdir -p "$MOUNTPOINT"

if mount | grep "$MOUNTPOINT" > /dev/null; then
    echo "Stick ist bereits gemountet."
else
    sudo mount /dev/"$GERAT" "$MOUNTPOINT" || { echo "Mounten fehlgeschlagen!"; exit 1; }
fi

echo "Wie soll der Stick in der Tabelle heißen? (z.B. STICK1):"
read STICKNAME

echo "Wie soll die CSV-Datei heißen? (z.B. stick1_liste.csv):"
read LISTENAME

CSVFILE=~/"$LISTENAME"

echo "Stickname;Dateipfad;Dateiname;Erstellungsdatum;Änderungsdatum" > "$CSVFILE"

find "$MOUNTPOINT" -type f | while read -r DATEI; do
    DATEINAME=$(basename "$DATEI")
    ERSTELLUNG_TS=$(stat -c '%W' "$DATEI")
    if [ "$ERSTELLUNG_TS" -le 0 ]; then
        ERSTELLUNG_FMT="unbekannt"
    else
        ERSTELLUNG_FMT=$(date -d "@$ERSTELLUNG_TS" "+%Y-%m-%d %H:%M:%S")
    fi
    AENDERUNG_TS=$(stat -c '%Y' "$DATEI")
    AENDERUNG_FMT=$(date -d "@$AENDERUNG_TS" "+%Y-%m-%d %H:%M:%S")
    echo "$STICKNAME;${DATEI};${DATEINAME};${ERSTELLUNG_FMT};${AENDERUNG_FMT}" >> "$CSVFILE"
done

sudo umount "$MOUNTPOINT"

echo "Fertig! Die CSV-Datei findest du unter $CSVFILE"
echo "Öffne die Datei jetzt automatisch in LibreOffice Calc..."
libreoffice --calc "$CSVFILE" &

Auszug aus dem Nano-Editor im Terminal

Mit [strg+O] speichern, mit [Enter] bestätigen und mit [strg+X] den Nano-Editor beenden.

III. Skript ausführbar machen

Dazu im noch geöffneten Terminal folgenden Befehl einfügen:

chmod +x ~/usb_katalog_mit_datum.sh

IV. Das Skript ausführen

Nun können wir den ersten USB-Stick katalogisieren.
Mit folgenden Befehl wird das Skript aufgerufen:

~/usb_katalog_mit_datum.sh

V. USB-Stick katalogisieren

Wir beginnen mit dem ersten USB-Stick – bitte diesen anschließen – im Dateimanager mounten und [Enter] drücken…

Alle verfügbaren USB-Laufwerke werden aufgelistet – wählen Sie die entsprechende Laufwerksbezeichnung und bestätigen dies mit [Enter]…

Geben Sie Ihr Passwort ein und bestätigen die Eingabe mit [Enter]…

Wie soll der USB-Stick in der Calc-Tabelle heißen? Vergeben Sie eine passende Bezeichnung, im Beispiel übernehmen wir den Vorschlag STICK1

Im nächsten Schritt benennen wir noch die Ausgabe-Liste…

Die Katalogisierung des USB-Sticks startet – das kann je nach Umfang etwas dauern.
Nach Fertigstellung öffnet sich die Import-Zuweisung von Libre Office Calc – übernehmen Sie diese mit Klick auf OK

VI. Verarbeitung mit Libre Office Calc

Libre Office Calc startet jetzt mit der eben erstellten *.csv-Datei. Diese Liste kann nun mit den komfortablen Funktionen von Calc z.B. nach bestimmten Dateien durchsucht und weiter verarbeitet werden…

Ein weiteres nützliches Beispiel: Musiksammlung auslesen ohne Media Player…

Bei Veränderungen auf dem Datenträger wiederholen Sie das Katalogisieren, überschreiben die erstellte *.csv-Datei oder erstellen – zum Vergleich – eine zusätzliche Liste.
Für einen anderen USB-Stick / Laufwerk verfahren Sie wie vor beschrieben, passen aber die Bezeichnungen entsprechend an.

Die jeweiligen *.csv-Listen werden im home-Verzeichnis abgelegt und können beliebig verschoben werden…

Einen Starter für das Skript im Menü erstellen

Um das Skript angenehm einfach aus dem Menü zu starten, öffnen Sie ein Terminal und geben folgenden Befehl ein:

nano ~/.local/share/applications/usb_katalog_mit_datum.desktop

Folgenden Inhalt einfügen:

[Desktop Entry]
Type=Application
Name=USB-Katalogisierer
Comment=Erstellt eine CSV-Liste vom USB-Stick
Exec=gnome-terminal --hold -e "/home/benutzername/usb_katalog_mit_datum.sh"
Icon=media-removable
Terminal=true
Categories=Utility;

Sieht im Nano-Editor / Terminal dann so aus…

Für den Platzhalter benutzername den tatsächlichen Benutzernamen – korrekt geschrieben – verwenden. Speichern Sie mit [strg+O], bestätigen mit [Enter] und den Nano-Editor mit [strg+X] schließen.

Jetzt noch vom System ab- und anmelden.

Ein Starter ist nun unter Menü -> Zubehör verfügbar…

Anmerkung

Das Skript wurde etwas erweitert – angeschlossene USB-Sticks werden automatisch erkannt und eingehängt. Das Katalogisieren von USB-Laufwerken ist wie vor beschrieben, ebenso möglich – wählen Sie dazu die entsprechende Bezeichnung.

Fazit

Mit diesem kleinen Bash-Skript lassen sich USB-Sticks unter Linux schnell und komfortabel katalogisieren.
Die CSV-Ausgabe – in Kombination mit Libre Office – ist ideal für Archivierung, Übersicht und Weiterverarbeitung.

Titelbild: Designed by Freepik

Gefällt mir 22

Schreibe einen Kommentar

17 Reaktionen

      • Ich bin ein stiller Beobachter hier. Nun möchte ich doch einmal für deine vielen konstruktiven, an der wirklichen Praxis orientierten Beispiele danken. Gibt es vielleicht ein ähnliches Script um HDD/SSD-Platten zu katalogisieren?

        • Besten Dank für dein Feedback…
          Man kann bereits externe Laufwerke (per USB) damit auslesen. Einfach die entsprechende Laufwerk-Bezeichnung bei der Auswahl einfügen. Das kann dann halt je nach Umfang etwas dauern…
          Um auch interne LW auslesen / katalogisieren zu können, muss ich das Skript etwas abändern.
          Vielleicht schaffe ich es bis morgen… Ansonsten gelegentlich hier vorbeischauen… 🙂

      • Raffiniert, aber bestimmt komplizierter wäre es, wenn der eingesteckte USB-Stick automatisch erkannt wird und zugleich vorausgewählt wird. Spart dem Nutzer Tipperei.
        Mir meldet (Debian/KDE-Plasma) ein aufploppendes Fenster mit dem Angebot „Einhängen und öffnen“ den gerade eingesteckten Stick automatisch.

        • Den Stick beim Anschließen einfach mounten (lassen) und dann im Skript weiter machen…

          Die automatische Erkennung des zuletzt angeschlossenen USB-Stick ließe sich auch einstellen.
          Wie du schon schreibst – raffiniert, aber etwas komplizierter und Fehler-anfälliger.
          Aber auch das werde ich mal durchspielen. Wenn’s dauerhaft ohne Fehler funktioniert, wird der Beitrag entsprechend ergänzt…

  1. Nachdem ich hier seit Jahren mitlese, habe ich mich mal angemeldet.

    cooles Script .. sehr nützlich 🙂
    Ist es gewollt, dass der Dateipfad mit dem Dateinamen ausgegeben wird ?

    Ich habe es für mich mal wie folgt angepasst:
    Nach der while-schleife extrahiere ich den Pfad:
    DATEIPFAD=$(dirname „$DATEI“)

    .. und beim „wegschreiben“ sieht der echo-Befehl dann so aus:
    echo „$STICKNAME;${DATEIPFAD};${DATEINAME};${ERSTELLUNG_FMT};${AENDERUNG_FMT}“

    Man könnte den Pfad mit Dateinamen auch in die Liste aufnehmen:
    echo „$STICKNAME;${DATEI};${DATEIPFAD};${DATEINAME};${ERSTELLUNG_FMT};${AENDERUNG_FMT}“

    • Hallo @ascotix,

      willkommen auf der Linux-Bibel.
      Danke für dein Feedback.
      Ja das war gewollt so.
      Das Skript kann beliebig erweitert, verändert bzw. angepasst werden…

      Grüße
      zebolon

  2. Danke. Klasse gemacht. Aber warum nur LibreOffice, es gibt doch noch andere Tabellenkalkulationsprogramme?

    Bei Linux-Mint 21.3 wird der USB-Stick automatisch gemountet.

    Wie geht es nochmal das ich das Programm ins Menü reinbringe?

    Habe auch eine DVD so katalosiert.

    • Hallo Holger,

      Libre Office ist auf nahezu allen Linux Distributionen vorinstalliert – es ist also Praxis-nah…
      Du kannst das Skript natürlich auch ohne LO nutzen und eine Anwendung deiner Wahl zum Bearbeiten der Liste verwenden. Am einfachsten, du schließt LO gleich wieder. Die *.csv-Liste wird im home-Bereich abgelegt.

      Oder – du kannst im Skript die beiden entsprechenden Zeilen:

      echo „Öffne die Datei jetzt automatisch in LibreOffice Calc…“
      libreoffice –calc „$CSVFILE“ &

      einfach auskommentieren – dann sieht das so aus:

      # echo „Öffne die Datei jetzt automatisch in LibreOffice Calc…“
      # libreoffice –calc „$CSVFILE“ &

      oder einfach löschen…

      Bezüglich Eintrag ins Menü – Siehe Nachtrag am Beitragsende…

    • Hallo Holger,
      ich hab eine Abbildung des Nano-Editors im Terminal im Beitrag an entsprechender Stelle gesetzt.
      Der Benutzername muss natürlich der Name sein, mit dem man sich am System anmeldet.
      Weitere Voraussetzung: Das Skript muss wie in der Anleitung oben angelegt und mit der nötigen Berechtigung erstellt sein. Scheinbar hat es bei dir ja funktioniert…
      Alles nochmal kontrollieren und logout / login…

        • Hallo Holger,

          bitte exakt an die Anweisungen im Beitrag halten.

          Mit dem Befehl im Terminal:

          nano ~/.local/share/applications/usb_katalog_mit_datum.desktop

          öffnet sich der Nano-Editor. Hier fügst du folgenden Inhalt ein:

          [Desktop Entry]
          Type=Application
          Name=USB-Katalogisierer
          Comment=Erstellt eine CSV-Liste vom USB-Stick
          Exec=gnome-terminal --hold -e "/home/benutzername/usb_katalog_mit_datum.sh"
          Icon=media-removable
          Terminal=true
          Categories=Utility;

          Für benutzername deinen richtigen Anmeldenamen einfügen.
          Speichern mit [strg+O], bestätigen mit [Enter] und den Nano-Editor mit [strg+X] schließen.
          Jetzt noch am besten ein Neustart, dann sollte es eigentlich mit dem Starter im Menü funktionieren…

          • Hallo zebolon,

            funktioniert leider nicht . Habe exakt so wie Du in der Anweisung gegeben das gemacht.
            Habe es auch mal ohne die “ gemacht. Es klappt nicht. Es blitzt ganz kurz ein Fenster auf.
            Vielleicht muss man unter Linux Mint was anderes machen?

            Gruß Holger

Neue Themen im Forum
Statistik Mai 2025Die Entwicklung im WIKI im Mai 2025 Insgesamt sind 13 neue Beit … Weiterlesen
Dateien kopierenUnd alle 3 Maschinen haben das gleiche Datum / Urzeit und Zeitzone … Weiterlesen
Handy auf Linux Mint Bildschirm s …Hallo Holger - bitteschön https://linux-bibel.at/index.php/2023/09 … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

Mai 2025
M D M D F S S
 1234
567891011
12131415161718
19202122232425
262728293031  
Archive