Index/ Dateiliste von allen Dateien erstellen?

bluedxca93

Lt. Commander
Registriert
Juli 2019
Beiträge
1.859
Hallo, wie kann ixh unter Linux einem Index/Dateiliste erstellen? find . > filelist.txt oder so klappt. Nur ich habe auch einige squashfs im System. Da müsste dann für jedes squashfs ne neue Liste angelegt werden. Hintergrund: Habe eine 4 tb Toshiba Festplatte als Datengrab. Und da weiss ixh oft die Dateinamen aber nicht mehr die Ordner wo was drin ist. Und die Dateiliste lässt sich schneller mit grep was finden als mit ls .
Ergänzung ()

Toll wäre auch wenn das Datum-/Jahr in der Liste drin wäre
 
Den find über den mountpoint von dem squashfs laufen lassen
 
  • Gefällt mir
Reaktionen: bluedxca93
Das Standardtool für Dateinamensindizierung ist locate.
Wobei updatedb dafür zuständig ist den Index aufzubauen der sich dann mit locate abfragen lässt.
Wie Du verschiedene Dateisysteme handhabst, musst Du Dir halt überlegen. Ob Du alles in eine Datenbank reinpackst (kann man ja machen) oder aufteilst. Vor dem Index-Update musst Du die betreffenden Dateisysteme natürlich mounten.
 
  • Gefällt mir
Reaktionen: dms, konkretor, bluedxca93 und eine weitere Person
Das Zauberwort heißt tree. Das hat mannigfaltige Optionen, um dir entweder eine Baumgrafik (in ASCII-Art) zu geben, oder die Pfade komplett auszuschreiben, um die Hierarchie anzuzeigen. Du kannst beliebige Eigenschaften zusätzlich ausgeben (Größe, Berechtigungen, Besitzer, Dateityp).

Ich habe mir einst ein kleines Wrapperskript (namens FileTree) geschrieben, um es mit den gewünschten Optionen auf meinem NAS auszuführen und noch ein paar andere Infos abseits von tree zu ermitteln und dann in eine Datei zu schreiben, die nach dem eingelesenen Verzeichnis (oder Partitionsnamen) und dem aktuellen Datum benannt ist. So kann ich immer und überall den Inhalt des NAS’ einsehen, auch wenn es nicht läuft oder ich unterwegs bin. Mit meinen externen Platten verfahre ich analog.

Ergänzung ()

andy_m4 schrieb:
Das Standardtool für Dateinamensindizierung ist locate.
Er will ja nicht indizieren und dann gezielt suchen, sondern einfach den kompletten Inhalt eines Verzeichnisbaums ausgeben.
 
  • Gefällt mir
Reaktionen: bluedxca93
Wenn man Dateien/Verzeichnisse fuzzy finden möchte, bietet sich vielleicht fzf an. Damit ist mit etwas Scripting auch sowas möglich:
fzf-preview.jpg


Das Bild stammt von hier: A Practical Guide to fzf: Building a File Explorer
 
Evil E-Lex schrieb:
Wenn man Dateien/Verzeichnisse fuzzy finden möchte
Ich sag's gern nochmal: hier geht es nicht darum.

Es geht um eine statische Liste von Verzeichnissen und Dateien, die in dem Moment des Lookups nicht gemountet sein müssen. Man kann zwar soweit ich weiß auch mit (p)locate eine eigene Datenbank für unterschiedliche Verzeichnisse anlegen, damit beim systemweiten Lauf von updatedb der Inhalt von gerade nicht angeschlossenen Medien nicht wieder vergessen wird, aber locate enthält meines Wissens keine Datums- oder sonstigen Metainformationen.

@bluedxca93 Was mir gerade noch einfällt, da du die Inhalte deiner SquashFSe in getrennte Dateien haben willst: du kannst mit der Option -x verhindern, dass wenn du tree auf ein übergeordnetes Verzeichnis anwendest, der Inhalt des squashfs auch dort auftaucht.

Also angenommen du hast diese Verzeichnisstruktur:
Code:
demo/
├── foo/
│   ├── Datei
│   ├── squash.fs
│   └── squashfs/
│       └── inhalt/
│           └── bar
└── frotz.log
4 directories, 4 files
dann wird tree mit der Option -x so aussehen (unter der Annahme, dass squash.fs unter squashfs gemountet ist):
Code:
demo/
├── foo/
│   ├── Datei
│   ├── squash.fs
│   └── squashfs/
└── frotz.log
3 directories, 3 files
 
  • Gefällt mir
Reaktionen: bluedxca93
@Donnerkind
Ja mir gehts darum das die Platte nicht gemountet sein muss, wenn ich da was suchen möchte.
Eine einfache Dateiliste als Textdatei auf der ssd wäre mir am liebsten.

Also suche einfach was in die Richtung:
/mnt/username/folder1/folder2/filename.ext und dann das Jahr vllt noch Monat in dem die Datei erstellt wurde...
Bei den squashfs würde mir sogar Dateinamen reichen.
Bin bei tree unschlüssig ob der mir auch nur die Pfade "aufgelöst" anzeigt ohne Baumdiagramm.
 
bluedxca93 schrieb:
@Donnerkind
Ja mir gehts darum das die Platte nicht gemountet sein muss, wenn ich da was suchen möchte.
Eine einfache Dateiliste als Textdatei auf der ssd wäre mir am liebsten.
User-mode Tools für squashfs gibt es nur zum schreiben des Filesystem.
Ein User-Mode-Tool zum lesen müsstest du dir wohl selber bauen.
 
foofoobar schrieb:
Ein User-Mode-Tool zum lesen müsstest du dir wohl selber bauen.
Das ist natürlich Blödsinn. sqashfs ist normaler Bestandteil des Linuxkernels.
Du kannst es daher ganz normal mounten mit:
mount -t squashfs /path/to/sqashfsimage /path/to/mountpoint/
und dann kannst Du es natürlich mit den üblichen Tools auslesen. Die Dateiliste (inkl. aller sonst benötigten Informationen) speicherst Du in einer Datei (wurden ja schon mehrere Möglichkeiten hier genannt) und kannst dann jederzeit darauf suchen, auch wenns dann nicht mehr gemountet ist.
 
Dann läuft das Filesystem im Kernel-Mode, um das lesen zu können braucht es mount vorneweg den du (aus welchen Gründen auch immer) nicht willst.
 
So wie ich es verstanden hab, gilt das nur für die Abfrage. Nur weil man nach einer Datei sucht will man nicht jedesmal mounten müssen.
Zum aufbauen des Index' ist das ok, nehme ich an.
Alles andere wäre ja auch irgendwie merkwürdig.
 
bluedxca93 schrieb:
Bin bei tree unschlüssig ob der mir auch nur die Pfade "aufgelöst" anzeigt ohne Baumdiagramm.
'Türlich geht das. Ich benutze das auch in meinem Skript, denn nur ohne die Baumgrafik kann man solche Auflistungen vernünftig vergleichen, weil die Linien vor den Pfaden mal da sein können oder nicht, je nachdem, ob weiter unten noch was folgt.

Wenn du tree -fi aufrufst, bekommst du eine find-ähnliche Ausgabe (-f: full path, -i: keine indentation, also Einrückung). Die Zeit bekommst du mit -D angezeigt und man kann sogar das Datumsformat selber definieren, um z.B. das gut les- und vergleichbare ISO-Format zu bekommen: tree -D --timefmt "%F %T".

Überfliege einfach mal die manpage zu dem Programm, da gibt es noch viel mehr Optionen. Ich lasse mir auch Benutzer und Gruppe ausgeben sowie die summierte Größe von Verzeichnissen, einfach weil ich kann, es die Ausgabedatei kaum größer macht und ich dann ein flexibleres Archiv habe, um bei der Untersuchung von Merkwürdigkeiten (Seit wann fehlt hier ne Datei? War die schon immer so groß?) archäologische Daten zu haben.

(Habe ich schonmal erwähnt, dass ich solche hochspezialisierten textbasierten Tools liebe?🥰)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der Lord
andy_m4 schrieb:
So wie ich es verstanden hab, gilt das nur für die Abfrage. Nur weil man nach einer Datei sucht will man nicht jedesmal mounten müssen.
Zum aufbauen des Index' ist das ok, nehme ich an.
Alles andere wäre ja auch irgendwie merkwürdig.
Dann eben in der folgenden Art:

> result.txt
mount /foo
find /foo -xdev > result.txt
mount /bar
find /bar -xdev >> result.txt
mount /zsst
find /zsst -xdev >> result.txt

usw.
Das ganze kann man noch in eine Schleife der folgenden Art kleiden:

for i in `find /disk -name '*.squashfs'`
do
mount $i /mnt -o loop
find /mnt -xdev >> result.txt
umount /mnt
done
 
Zuletzt bearbeitet:
Donnerkind schrieb:
Ich lasse mir auch Benutzer und Gruppe ausgeben sowie die summierte Größe von Verzeichnissen, einfach weil ich kann, es die Ausgabedatei kaum größer macht und ich dann ein flexibleres Archiv habe, um bei der Untersuchung von Merkwürdigkeiten (Seit wann fehlt hier ne Datei? War die schon immer so groß?) archäologische Daten zu haben.
Wenn man das schon archiviert, dann würde ich Prüfsummen zwecks Bitrotting auch noch mitnehmen.
 
foofoobar schrieb:
Dann eben in der folgenden Art:
Hinweis für später: wenn du mehrzeilige Terminalausgaben schreibst, dann benutze nicht Inline-Code, sondern den normalen Code-Block. Dann wird es minimal lesbarer. :)

Uridium schrieb:
Wenn man das schon archiviert, dann würde ich Prüfsummen zwecks Bitrotting auch noch mitnehmen.
Für sowas habe ich ein eigenes Tool geschrieben. ^^ Das erstellt mir verzeichnisweise Prüfsummendateien (ursprünglich für Musikalben gedacht) und kann die später wieder prüfen. Da Prüfsummenabgleich laaaaange dauert, würde ich das nicht jedes Mal ausführen wollen, wenn ich eigentlich nur n aktuelles Inhaltsverzeichnis brauche. Und auf dem NAS erledigt das ZFS für mich, da mache ich dann alle x Monate einen Scrub.
 
Donnerkind schrieb:
Hinweis für später: wenn du mehrzeilige Terminalausgaben schreibst, dann benutze nicht Inline-Code, sondern den normalen Code-Block. Dann wird es minimal lesbarer. :)
Bisher habe ich bisher dafür keine Schaltfläche in diesem Forum gefunden.
Sag mir den Trick.
Donnerkind schrieb:
Für sowas habe ich ein eigenes Tool geschrieben. ^^ Das erstellt mir verzeichnisweise Prüfsummendateien (ursprünglich für Musikalben gedacht) und kann die später wieder prüfen. Da Prüfsummenabgleich laaaaange dauert, würde ich das nicht jedes Mal ausführen wollen, wenn ich eigentlich nur n aktuelles Inhaltsverzeichnis brauche. Und auf dem NAS erledigt das ZFS für mich, da mache ich dann alle x Monate einen Scrub.
Es gibt auch noch: https://de.wikipedia.org/wiki/PAR2
 
  • Gefällt mir
Reaktionen: andy_m4
foofoobar schrieb:
Sag mir den Trick.
Die drei senkrechten Punkte auf der Rechten Seite der Editor-Toolbar, und dann der ganz rechte Eintrag in der erscheinenden Leiste.

foofoobar schrieb:
Zu Zeiten, als man noch mit Disketten herumlief, war das bestimmt sehr hilfreich (oder mit heutigen Billig-USB-Sticks). Ich erinnere mich noch, dass Packer so ne Option hatten, als ich mit ner Schachtel Disketten ins Rechenzentrum radelte, um mir nen neuen Schwall Star-Trek-Bilder runterzuladen.😂

Ich nutze die Checksummen eher, um eine gerade erstellte Transportkopie zu verifizieren, um Bitfehler durch Kabel- oder RAM-Fehler zu finden. Diese Angewohnheit stammt aus einer Zeit, als ich alternde Technik hatte und kein Geld, sie durch was Neues zu ersetzen. Wer nur einzelne Festplatten für seine Archive nutzt, könnte Nutzen für Par haben. Bei mir habe ich die Parität im Raid und Backups sind mehrfach gespiegelt. Par ist ja quasi Raid auf Dateiebene, wenn ich das richtig verstehe.
 
foofoobar schrieb:
Bisher habe ich bisher dafür keine Schaltfläche in diesem Forum gefunden.
Sag mir den Trick.
ist hier versteckt:
1710264252176.png

edit: ach hat Donnerkind ja bereits erklärt... sry, übersehen.
aber Bilder sagen ja bekanntlich mehr als Worte. ansonsten eben ab ins Aquarium. :)
 
Zurück
Oben