Windows, Linux

So geben Sie große Dateibestände als Liste aus

Freitag den 20.04.2012 um 09:33 Uhr

von Stephan Mayer

Bildergalerie öffnen Datenbestände als Dateiliste ausgeben
© istockphoto.com/JuSun
Große Datenbestände – etwa die Musiksammlung – als Dateiliste auszugeben, stellt angesichts der bei fleißigen Sammlern ungeheuren Datenmenge eine echte Herausforderung dar.
Microsoft hat dazu eine Lösung veröffentlicht, die das per Rechtsklick auf das gewünschte Verzeichnis im Windows-Explorer ermöglicht. Unter  einer Microsoft-Seite findet man diese Lösung und zugleich ein unter allen gängigen Windows-Versionen funktionierendes Fix-It – einen Button, den man anklickt, um die nötigen Dateien automatisch an die richtige Stelle zu kopieren und die korrekten Einstellungen am System vorzunehmen.

Wenn man sich die Anleitung der manuellen Installation durchliest, kommt man schnell auf die Idee, diesen Button zu benutzen: Niemand fuhrwerkt freiwillig in der Registry herum und riskiert dabei einen Totalschaden des Systems, nur weil man sich im Registry-Baum den falschen Ast herausgesucht hat. Die Lösung von Microsoft hat eine Schwachstelle, die man von Hand beheben muss: Die Dateien von Verzeichnissen werden zwar ausgedruckt, nicht aber die Dateien in den darunter befindlichen Unterverzeichnissen. Der Aufwand unter Linux ist ungleich geringer, wenn man davon ausgeht, dass man die Musikstücke nach einzelnen CDs in Unterverzeichnissen sortiert hat. Ein Dreizeiler und ein Cron-Job sorgen für eine stets aktuelle Dateiliste.

So geht’s: Unter Windows starten Sie auf der oben genannten Website die Fix-It-Installation durch einen Klick auf den Button und bestätigen danach die Installation, indem Sie erst „Ausführen“ und dann OK anklicken. Die folgende Sicherheitsabfrage bestätigen Sie ebenfalls mit OK und starten anschließend den PC neu. Wenn Sie nun im Windows-Explorer ein Verzeichnis rechts anklicken, finden Sie den neuen Eintrag „Print Directory Listing“. Wenn Sie diesen anklicken, wird die Dateiliste auf dem Standarddrucker ausgegeben. Sollen auch noch die Unterverzeichnisse durchforstet und ausgegeben werden, öffnen Sie als Administrator den Editor und darin die Datei printdir.bat im Windows-Verzeichnis.

Print Directory Listing – obwohl der neue
englischsprachige Befehl kaum zur deutschen Windows-Version passt,
ist dieser extrem praktisch.
Vergrößern Print Directory Listing – obwohl der neue englischsprachige Befehl kaum zur deutschen Windows-Version passt, ist dieser extrem praktisch.

In der zweiten Zeile („dir …“) fügen Sie nach „dir“ noch /s ein und speichern die Datei. Aber Vorsicht: Wenn Ihr Standarddrucker die Liste auf Papier ausgibt, benötigt er mit dieser Einstellung allein für das Windows-Verzeichnis von Windows XP rund 300 Blatt Papier. Deshalb ist die Umstellung des Standarddruckers auf ein Programm wie PDF Creator sinnvoll: Dieser „Drucker“ gibt die Liste als Datei aus, sodass sie dann als PDF vorliegt.

12 Shell-Erweiterungen, die jeder braucht

Unter Linux brauchen Sie für die Ausgabe der Liste ein Script (und einen Cron-Job, wenn die Liste regelmäßig erzeugt werden soll). Öffnen Sie in Ihrem Lieblingseditor die neue Datei /home/<IhrBenutzername>bin/printdir.sh und fügen Sie folgende Zeilen ein:
#!/bin/sh cd /pfad/zu/den/Dateien ls -lhR >filelist.txt && grep „/“ filelist.txt >kurze_filelist, txt && rm filelist.txt „/pfad/zu/den/Dateien“ müssen Sie an Ihre Wünsche und Verzeichnisstruktur anpassen; das abschließende „rm filelist.txt“ können Sie weglassen, wenn Sie nicht nur die übersichtlichere Liste mit den CD-Titeln ausgeben wollen, sondern auch eine ausführliche mit allen Musikstücken. Schließlich müssen Sie noch im Terminal den Befehl chmod 755 printdir.sh im Verzeichnis bin Ihres Home-Directorys eingeben, um das Script ausführbar zu machen. Soll diese Liste regelmäßig erzeugt werden, bietet es sich an, dass Sie dies auf einem Fileserver, der ohnehin durchläuft, in der Nacht erledigen lassen:

Geben Sie dazu in einem Terminal folgenden Befehl ein:
crontab –e
Hier fügen Sie diese Zeile ein:
0 0 * * * / home/ <IhrBenutzername>/bin/printdir.sh #Das printdir.sh um 0 Uhr

Wenn Sie nun die Datei speichern und den Editor schließen, wird dieser Befehl jede Nacht um null Uhr ausgeführt. Natürlich können Sie die Dateilisten auch in dem Verzeichnis anlegen, in dem Sie Ihre eigenen HTML-Seiten ablegen (unter OpenSUSE ist dies
/home/<Benutzername>/public_html>, sodass sie per Browser abrufbar sind. Dazu müssen Sie in der Datei printdir.sh filelist.txt und kurze_filelist.txt um den Pfad zu diesem Verzeichnis ergänzen, sodass die Dateien hier erzeugt werden und per Browser abrufbar sind.

Freitag den 20.04.2012 um 09:33 Uhr

von Stephan Mayer

Kommentieren Kommentare zu diesem Artikel (3)
  • Feuerfux 20:48 | 23.04.2012

    Eine Frage ist nicht nötig, das ist schließlich ein Newskommentar. Das der nicht im Newsboard gelandet ist, ist nicht die Schuld des TO.

    Antwort schreiben
  • chipchap 19:20 | 23.04.2012

    Zitat: Helenelotte
    Dazu wird ein MS-DOS-Eingabefenster geöffnet (Start-Ausführen-"CMD") und so eine Befehlszeile eingetippt:

    dir X: /s >X:\alledateien.txt
    Klar, so geht es.
    Wie war nochmal die Frage?

    Antwort schreiben
  • Helenelotte 17:18 | 20.04.2012

    große Dateibestände als Liste ausgeben

    Das geht alles viel einfacher, wie ein ein Tipp der PC-Welt aus dem Jahr 2009 zeigt:

    Es gibt eine simple Methode um den kompletten Dateninhalt einer Festplatte - also alle Dateinamen und Verzeichnisnamen - schnell in eine Textdatei zu speichern. Dazu wird ein MS-DOS-Eingabefenster geöffnet (Start-Ausführen-"CMD") und so eine Befehlszeile eingetippt:

    dir X: /s >X:\alledateien.txt

    X steht hier für den Laufwerkbuchstabe des Datenträgers, dessen Inhalt in eine Textdatei protokolliert werden soll. Um alle Dateien und Verzeichnisse von Laufwerk "D" zu sichern, ist also diese Zeile fällig:

    dir D: /s >D:\alledateien.txt

    Ausgabe umleiten
    Vielleicht möchten Sie das, was die DOS-Box nach einem Befehl am Bildschirm anzeigt, in einer Datei speichern, z.B.um eine Liste zu bekommen, die Sie bearbeiten können. Das ist gar kein Problem: Das Zeichen ">" leitet die Ausgabe um, sofern Sie dahinter noch einen Dateinamen angeben. Tippen Sie zum Beispiel dir > meinfile.txt ein, schreibt Windows eine Liste aller Dateien und Ordner des aktuellen Ordners in eine Datei namens meinfile.txt.
    Die Funktion "Ausgabe umleiten" ist wunderbar geeignet, um beispielsweise eine Liste mit allen auf der Festplatte verstreuten MP3-Liedern zu erstellen. Das geht ganz fix: Vielen DOS-Befehlen lassen sich nicht nur Schalter mitgeben, sondern auch so genannte "Wildcards" (Jokerzeichen). Diese Wildcards sorgen dafür, dass ein Befehl nur für eine bestimmte Gruppe von Dateien gilt. Liegen Ihre MP3-Dateien z.B. auf dem Laufwerk D:, wechseln Sie auf die oberste Ebene dieses Laufwerks. Das bewerkstelligen Sie mit "d:" und "cd\".Nun tippen Sie den folgenden Befehl in einer Zeile ein: dir *.mp3 /b /s /on >mp3list.txt
    Diese Liste hat ein cleverer DOS-Befehl erstellt
    Damit haben Sie die DOS-Box zu Folgendem veranlasst: Auflisten (dir) aller Dateien mit Endung MP3 (*.mp3), und zwar ohne Datums- oder Größenangabe (/b), in allen Unterordnern (/s), nach Namen sortiert (/on) und all dies - bitte schön – direkt in die Datei mp3list.txt geschrieben. Die Datei mp3list.txt kommt in unserem Beispiel auf dem Laufwerk D: zu liegen und lässt sich im Windows-Editor öffnen.
    Das ist genauso praktisch, um eine Liste aller JPG-Bilder zu erstellen. Ersetzen Sie im obigen Befehl einfach "*.mp3" durch "*.jpg" und natürlich den Zieldateinamen beispielsweise durch "jpglist.txt" anstatt "mp3list.txt".

    Antwort schreiben
1399875