Hi,
so nach einigen streiterein mit mediatomb und zwei Blu-ray Playern (einer Sony und einer Philps) war ich am rande der verzweiflung.
Erst lief nur der Philips dann habe ich irgendwann auch die Config datei soweit das auch der Sony avi dateien abspielen wollte.
Aber der Sony wollte keine mkv dateien abspielen (und auch keine mp4)
Irgendwann habe ich es dann mal ausprobiert eine mkv datei einfach die endung .avi zu geben und siehe da es funktioniert (zumindest bei dem Sony player der Philips player mag es irgendwie garnicht wenn eine mkv datei die endung avi hat). Also ist es auch keine Option alle mkv dateien mit der Endung .avi zu versehen.
So daher meine Frage gibt es irgendeinen einfachen weg ein Verzeichniss so zu klonen, dass das geklonte Verzeichniss die selbe Ordner struktur hat und symlinks auf die Dateien des zielverzeichnisses enthält und dabei allerdings andere Dateiendungen zu verwenden (also mkv -> avi und mp4 ->avi)? Hat soetwas schon mal jemand versucht oder muss ich da einige Stunden mit bash scripten kämpfen, bis ich soweit bin.
mfg
robinx99
Linux 15.039 Themen, 107.142 Beiträge
So etwas rumgewusselt und einen quick and dirty script (2 zeiler) geschrieben.
Scheint zu funktionieren
sieht aber grausam aus und ist performance mässig auch nicht schnell und die verzeichnisse sind auch hard coded /media/ für die die medien und /sony/ für die shares mit den symlinks für den sony player ebenso sind die zahlen 8 in den substr die länge der namen der Verzeichnisse inklusive führender Slashes.
Nach ersten Tests funktioniert es aber irgendwie mag ich das Skript trotzdem nicht, da zuviel copy and paste und zuviele pipes.
Hoffentlich klappt das posten dieses komischen scripts.
Zeile 1:
find /media/ -type d| tr -d "'" |tr -d "\\\\" |tr -d "\`" |gawk '{print "mkdir \"/sony/"substr($0,8)"\""}' |sh
Zeile 2:
find /media/ -type f| tr -d "'" |tr -d "\\\\" |tr -d "\`" |gawk '{if (substr($0,length($0)-2)=="mkv") i=substr($0,0,length($0)-3)"avi" ;else if (substr($0,length($0)-2)=="mp4") i=substr($0,0,length($0)-3)"avi" ;else if (substr($0,length($0)-2)=="MKV") i=substr($0,0,length($0)-3)"avi" ; else if (substr($0,length($0)-2)=="MP4") i=substr($0,0,length($0)-3)"avi" ; else i=$0;print ( "ln -s \"" $0 "\" \"/sony/"substr(i,8))"\""}' |sh
mfg
robinx99
Ja. Verzeichnis mit Symlinks klonen geht einfach. Weiß aber leider nicht mehr in welcher man-Page ich das gelesen hatte...
Das Umbenennen könntest Du dann mit rename machen, in Verbindung mit find zum Suchen der Dateien:
find -name '*.mkv' -exec rename 's/.mkv$/.avi/' {} \;
Gruß
Borlander