Gibt es unter Linux (xfce) ein Programm, was eine externe Festplatte mit vielen Unterverzeichnissen nach Datensorten durchsuchen kann und die ordnet?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das kannst Du mit dem "find" Befehl machen.

gib z.B. mal ein

find . -iname "*.pdf"

Der erste Parameter, hier der Punkt, gibt an ab wo gesucht werden soll, also hier "in diesem Verzeichnis". Da kannst Du natürlich auch einen Unterordner angeben wie z.B.

find /media/MeinePlatte -iname "*.pdf"

-iname besagt, dass nach einem Dateinamen oder Ordner gesucht werden soll.Also hier alles was auf .pdf endet. Das i sagt "ignore case", so findet das nicht nur .pdf sondern auch .PDF

Das kannst Du einfach so ausprobieren, das solltest Du auch unbedingt vor dem nächsten Schritt. Du bekommst einfach nur eine Liste auf den Bildschirm.

Jetzt kann man mit den gefundenen Dateien auch "arbeiten", dazu kann man den "-exec" Parameter verwenden:

find /media/MeinePlatte -iname "*.pdf" -exec cp {} /home/nutzername/datenhierreinverzeichnis \;

Was hinter -exec steht wird ausgeführt so als wenn Du das in eine Shell eintippst. Der "Trick" ist hier, dass das {} durch den gefundenen Dateinamen ersetzt wird. Leider kann man das {} nur ein mal verwenden, aber zum kopieren (cp) oder verschieben (mv) reicht das.

Der Befehl oben kopiert dann also alle gefundenen PDF in den entsprechenden Ordner wie angegeben.

Wichtig ist das Semikolon um find zu sagen, dass der Konsolenbefehl da aufhört. Das muss durch einen Backslash maskiert werden damit es erkannt wird. Also musst Du unbedingt mit " \;", also "Space Backshash Semikolon" abschließen.

Statt cp kannst Du natürlich mv verwenden um statt zu kopieren richtig zu verschieben. Die leeren Ordner kannst Du ebenfalls mit find weg machen, dazu schreibt man:

find . -empty -delete

Auch hier wieder, lässt man das -delete weg, bekommt man nur eine Liste angezeigt.

Aber Achtung, nicht in einen Ordner verschieben/kopieren in den find dann rein schaut, sonst verschiebt/kopiert das natürlich immer wieder weil es ja auf die frisch kopierten/verschobenen Dateien trifft und die findet.

Woher ich das weiß:Berufserfahrung
guitschee 
Fragesteller
 06.12.2023, 00:03

uff. Okay, das mache ich dann nicht mehr heute Abend - für sowas brauche ich einen klaren Kopf als DAU ;-) , aber Danke!

0
Commodore64  06.12.2023, 00:06
@guitschee
für sowas brauche ich einen klaren Kopf

Auf jeden Fall, denn so was ist "gefährlich". Du kannst da richtig Chaos mit anrichten oder Daten verlieren wenn Du da einen groben Fehler machst und die Daten irgendwohin kleisterst wo die nicht hingehören bzw. wenn die nachher an der Originalen Stelle fehlen.

Am besten kopierst Du nur auf eine neue Platte, dann kannst Du immer neu anfangen falls Du ein Chaos angerichtet hast!

In dem Zusammenhang ist sicher "unoconv" interessant. Damit kann man alle Office Dokumente in TXT umwandeln die man dann mit grep bequem durchsuchen kann. Nur mit PDF geht das nicht, dafür kann man aber pdftotext verwenden. Beide Befehle funktionieren auch wunderbar mit find -exec.

0
guitschee 
Fragesteller
 06.12.2023, 00:12
@Commodore64
Auf jeden Fall, denn so was ist "gefährlich". Du kannst da richtig Chaos mit anrichten oder Daten verlieren wenn Du da einen groben Fehler machst und die Daten irgendwohin kleisterst wo die nicht hingehören bzw. wenn die nachher an der Originalen Stelle fehlen.

Mein Plan ohnehin: erstmal auf zweiter Platte eine Kopie der ersten erstellen - aus zahlreichen Nichtbackups habe ich irgendwann ja mal ein bisschen Lerneffekt. :-D

Und ansonsten, ja bei Terminalzeugs bin ich immer vorsichtig, außer bei den vier Befehlen, die ich komplett auswendig kann und die nix schlimmes tun :-D.

Damit kann man alle Office Dokumente in TXT umwandeln die man dann mit grep bequem durchsuchen kann.

Das möchte ich tatsächlich nicht. Ich schreibe Geschichten - die mag ich in odt-Format behalten ;-).

0
Commodore64  06.12.2023, 00:28
@guitschee
Das möchte ich tatsächlich nicht. Ich schreibe Geschichten - die mag ich in odt-Format behalten ;-).

Das geht darum die Dateien per grep durchsuchen zu können.

Schreibst Du

find . -iname "*.odt" -exec unoconv -f txt {} \;

oder alleine

unoconv -f txt Weihnachtsgeschichte.odt

Dann erzeugt das zusätzlich eine TXT datei die man dann mit grep durchsuchen kann.

Also hast Du dann

Weihnachtsgeschichte.odt
Weihnachtsgeschichte.txt

Dann kannst Du z.B. mit

grep -ic Geschenke Weihnachtsgeschichte.txt

Nachzählen lassen wie oft das Wort "Geschenke" drin vorkommt

Das i bedeutet auch hier "ignore case", das c bedeutet "count", also zählen

0
guitschee 
Fragesteller
 06.12.2023, 00:06

Aber mit "find" wieder was neues gelernt. Das freut mich. Kann ich generell denke ich gut gebrauchen.

0
Commodore64  06.12.2023, 00:08
@guitschee

Leider kompliziert und anders als die meisten Programme.

Wo man bei fast allem -- schreibt für ausgeschriebene Parameter nimmt find nur ein -

Lies Dir die Manpage durch

man find

, ist erst mal irre verwirrend, daher habe ich so viel geschrieben um Dir den Einstieg zu erleichtern.

1
Commodore64  06.12.2023, 00:12
@Commodore64

Das find . -empty -delete ist übrigens sehr praktisch bei fehlgeschlagenen Kopierversuchen. Es werden ja erst alle Ordner angelegt und dann wird kopiert. Bricht man ab, kann man leicht "tausende" leerer Ordner haben. Die kriegt man so blitzschnell weg,

0
guitschee 
Fragesteller
 06.12.2023, 00:13
@Commodore64
Das find . -empty -delete ist übrigens sehr praktisch bei fehlgeschlagenen Kopierversuchen.

Jap, das war meine erste Überlegung - denn das hat mich auch schon etliche Datein gekostet, von denen ich dachte, ich hab sie ja kopiert....

0
Commodore64  06.12.2023, 00:18
@guitschee

-empty -delete löscht alles mit 0 Einträgen und 0 Byte. Also Dateileichen und leere Ordner.

Wenn Du das machst, kannst Du direkt sehen ob die Dateien wirklich da waren oder alle leer waren. Nur die "Leichen" verschwinden.

Und beim Aufräumen ist "fdupes" interessant. Oft hat man ja durch Windows Großbuchstaben und wenn man dann Sachen zusammen kopiert hat man dann oft alles zwei mal oder gar drei mal, z.B.

Bild01.jpg
Bild01.JPG
BILD01.JPG

Dann kannst Du fdupes einsetzen. Das schaut welche Dateien gleich groß sind. Wenn gleich groß, könnten die ja gleich sein, nur einen anderen Namen haben. Dann erzeugt fdupes einen "hash". Ist der gleich, ist die Datei identisch.

Dann kann man das interaktiv machen, also jedes mal sagen welche Datei man behalten will und der Rest wird dann gelöscht oder (gefährlicher) fdupes das selber entscheiden lassen:

fdupes -dN .
0
guitschee 
Fragesteller
 06.12.2023, 00:19
@Commodore64

Okay, da komme ich jetzt nicht mehr mit. To much input :-).

0
Commodore64  06.12.2023, 00:20
@guitschee

Keine Panik, ist ja schriftlich, kannst Du nach und nach alles in Ruhe ausprobieren.

0

Eventuell kann mancher Norton-Commander-Klon soetwas.

Ah ja und wenn du sowohl Original als auch Kopie haben möchtest ohne den Speicherplatz allzuviel zu erhöhen könnte man es evtl. mit Hard- oder Softlinks versuchen.

Die Antwort von Commodore64 ist korrekt - aber wenn du lieber ein grafisches Tool nutzt, kannst du auch einfach im Dateimanager nach ".pdf", ".odt", etc. suchen, und die Sachen dann per Hand irgendwo hin kopieren (strg+a, strg+c, strg+v).

Woher ich das weiß:Studium / Ausbildung – Informatik

Nur mal nebenbei bemerkt: Der Dateityp als Ordnungskriterium ändert am Chaos eigentlich überhaupt nichts.

Ansonsten ist die Antwort von Commodore64 perfekt.

guitschee 
Fragesteller
 06.12.2023, 01:00
Der Dateityp als Ordnungskriterium ändert am Chaos eigentlich überhaupt nichts.

Für mich tatsächlich schon. Denn damit kann ich mir eine Struktur danach ausdenken, weil ich weiß, was ich habe. Nur einzelne Ordner würde ich weglassen (weil die sinnvollerweise mehr als einen Dateityp beeinhalten).

0