random access auf ext3-Dateisystem

Osti

Gurkencommander
Registriert
16. August 2002
Reaktionspunkte
16.434
Ort
Unterallgäu
Hallo Linux-Freaks :D

ich würde gerne Dateien in zufälliger Reihenfolge in ein anderes Verzeichnis kopieren. Die Dateien liegen natürlich nicht in einem Verzeichnis sondern sind über viele verteilt, allerdings haben sie ein gemeinsames Root-Verzeichnis. Hat jemand ne Idee, wie ich mir nen Skript basteln könnte, dass zufällige Dateien dieser Verzeichniss in ein anderes Zielverzeichnis kopiert?

Dönen Schank,

Osti
 
Zuerst wuerde ich mir eine Liste aller in Frage kommenden Files (+ deren Paths) erstellen (durch die betreffenden Directories traversieren und Array erstellen). Dann kannst du das Array durcheinander wuerfeln (das gibt es tausenden Algorithmen; Google hilft) und schlussendlich Schritt fuer Schritt durch das Array gehen und jeweils ein cp machen.

Das alles kann man wunderbar in ein kleines Shellskript packen.

Gruesse, rikman
 
Wozu extra Algo, das passt in eine Zeile (hier bash):
Code:
find <gem. root-Verzeichnis> <Suchprädikate> | while read; do echo "$RANDOM $REPLY"; done | sort | while read x y; do cp "$y" <Zielverzeichnis>; done
(Klappt so nicht, wenn die Dateinamen Leerzeichen enthalten, dann zB noch IFS und die echo-Anweisung anpassen)
 
carmin schrieb:
Wozu extra Algo, das passt in eine Zeile (hier bash):
Code:
find <gem. root-Verzeichnis> <Suchprädikate> | while read; do echo "$RANDOM $REPLY"; done | sort | while read x y; do cp "$y" <Zielverzeichnis>; done
(Klappt so nicht, wenn die Dateinamen Leerzeichen enthalten, dann zB noch IFS und die echo-Anweisung anpassen)


Hey super!

funktioniert ausgezeichnet. :daumen:

Rein interessehalber, was bewirkt das read x y ????

Danke,

Osti
 
Osti schrieb:
Rein interessehalber, was bewirkt das read x y ????
Liest eine Zeile von stdin und weist die (durch Zeichen aus IFS getrennten) Wörter nacheinander den gegebenen Variablennamen (x, y) zu; die letzte Variable kriegt den Rest. Dient hier einfach dazu, die Zufallszahl wieder wegzubekommen, sonst hätte man ebensogut xargs nehmen können. Mehr: siehe man bash.

Rein interessehalber :) : Was war Dein Projekt? Ein Dateisystem-Benchmark? Könnte mir sonst nix vorstellen, warum Durcheinanderwürfeln von Dateien Sinn machen würde, weil ein FS doch so oder so keine Garantie über die Reihenfolge von Dateien macht, oder bin ich da falsch informiert?
 
carmin schrieb:
Liest eine Zeile von stdin und weist die (durch Zeichen aus IFS getrennten) Wörter nacheinander den gegebenen Variablennamen (x, y) zu; die letzte Variable kriegt den Rest. Dient hier einfach dazu, die Zufallszahl wieder wegzubekommen, sonst hätte man ebensogut xargs nehmen können. Mehr: siehe man bash.

Rein interessehalber :) : Was war Dein Projekt? Ein Dateisystem-Benchmark? Könnte mir sonst nix vorstellen, warum Durcheinanderwürfeln von Dateien Sinn machen würde, weil ein FS doch so oder so keine Garantie über die Reihenfolge von Dateien macht, oder bin ich da falsch informiert?

ah, ok, das mit den Zufallszahlen hätte ich jetzt mit awk gemacht, aber so ist ja noch einfacher.

Mein Projekt ist weitaus simpler als Du denkst. Ich habe nen Linux-Fileserver mit meinen ganzen MP3's. DIese wollte ich jetzt mal z.T. auf CD brennen. Damit ich nicht komplette Alben brennen muss, wollte ich die relativ einfach und in zufälliger Reihenfolge in ein Zielverzeichnis kopieren, um sie zu brennen :D

Dateinamen mit Leerzeichen scheinen aber auch zu funktionieren.

@wing: was ist BOHF????

Osti
 
Damit ich nicht komplette Alben brennen muss, wollte ich die relativ einfach und in zufälliger Reihenfolge in ein Zielverzeichnis kopieren, um sie zu brennen :D
Du musst Informatiker sein... Normale Leute versuchen, ihre Daten organisiert abzulegen :bier:

Dateinamen mit Leerzeichen scheinen aber auch zu funktionieren.
Okay, mein Irrtum. Reiner Zufall.

Bastard Operator Hell From? Noch ne Sorte nicht-normaler Menschen. ;)
 
Du musst Informatiker sein... Normale Leute versuchen, ihre Daten organisiert abzulegen :bier:

Sorry, Fachinformatiker :D
Btw. die Daten SIND organisiert abgelegt, nach Interpret und Album. Aber ich will ja etwas Unordnung reinbringen, damit ich die MP3's schön bunt gewürfelt auf CD brennen kann.

Bastard Operator Hell From? Noch ne Sorte nicht-normaler Menschen. ;)

Bastard Operator From Hell ist mir natürlich ne Begriff :D wer kennt die amüsanten Geschichten/Realität nicht :lol:

Osti
 
Zurück