Nummerierte Dateien suchen und dazu Symlinks (.jpg) erstellen.
Achtung! Amateur sucht Hilfe..
Ich möchte per bash mit jpg-symlinks von allen .dat Dateien auf eine zugehörige .jpg datei im Ordner verweisen, damit zu jeder Datei das ein zugehörige Bild angezeigt wird.
Ziel ist, zu jeder .dat einen gleichnamigen symlink .jpg zu erzeugen, der auf die .jpg ohne Nummerierung verweist. Ich möchte also einen Ordner nach gleichnamigen Dateien, die sich nur durch Nummerierung unterscheiden, durchsuchen. Zu diesen will ich dann gleichnamige symlinks erzeugen.
Szenario: Alle Dateien sind in einem Ordner
List1.jpg
List1-001.dat
List1-002.dat
List1-003.dat
List1-004.dat
List1-004.dat
List1-004.dat
List2.jpg
List2-001.dat
List2-002.dat
List2-003.dat
List2-004.dat
Ziel:
List1.jpg
List1-001.dat
List1-001.jpg (symlink)
List1-002.dat
List1-002.jpg (symlink)
List1-003.dat
List1-003.jpg (symlink)
List1-004.dat
List1-004.jpg (symlink)
List1-005.dat
List1-005.jpg (symlink)
List2.jpg
List2-001.dat
List2-001.jpg (symlink)
List2-002.dat
List2-002.jpg (symlink)
List2-003.dat
List2-003.jpg (symlink)
List2-004.dat
List2-004.jpg (symlink)
Bisher mache ich das ganz dumpf, indem ich einfach per bash eine Folge symlinks erstelle.
ln -s "$path/$file.jpg" "$path/$file-001.jpg"
ln -s "$path/$file.jpg" "$path/$file-002.jpg"
ln -s "$path/$file.jpg" "$path/$file-003.jpg"
ln -s "$path/$file.jpg" "$path/$file-004.jpg"
...
Das ist natürlich Schrott. Je nach Anzahl der Dateien erzeuge ich unnötig viele oder zu wenige symlinks. Davon abgesehen entsteht ein langes Script, obwohl es nicht viel tut..
Allerdings weiß ich nicht, wie man nach einem variablen Filename sucht..
Könnt ihr mir sagen, was ich tun muss?
Ich möchte per bash mit jpg-symlinks von allen .dat Dateien auf eine zugehörige .jpg datei im Ordner verweisen, damit zu jeder Datei das ein zugehörige Bild angezeigt wird.
Ziel ist, zu jeder .dat einen gleichnamigen symlink .jpg zu erzeugen, der auf die .jpg ohne Nummerierung verweist. Ich möchte also einen Ordner nach gleichnamigen Dateien, die sich nur durch Nummerierung unterscheiden, durchsuchen. Zu diesen will ich dann gleichnamige symlinks erzeugen.
Szenario: Alle Dateien sind in einem Ordner
List1.jpg
List1-001.dat
List1-002.dat
List1-003.dat
List1-004.dat
List1-004.dat
List1-004.dat
List2.jpg
List2-001.dat
List2-002.dat
List2-003.dat
List2-004.dat
Ziel:
List1.jpg
List1-001.dat
List1-001.jpg (symlink)
List1-002.dat
List1-002.jpg (symlink)
List1-003.dat
List1-003.jpg (symlink)
List1-004.dat
List1-004.jpg (symlink)
List1-005.dat
List1-005.jpg (symlink)
List2.jpg
List2-001.dat
List2-001.jpg (symlink)
List2-002.dat
List2-002.jpg (symlink)
List2-003.dat
List2-003.jpg (symlink)
List2-004.dat
List2-004.jpg (symlink)
Bisher mache ich das ganz dumpf, indem ich einfach per bash eine Folge symlinks erstelle.
ln -s "$path/$file.jpg" "$path/$file-001.jpg"
ln -s "$path/$file.jpg" "$path/$file-002.jpg"
ln -s "$path/$file.jpg" "$path/$file-003.jpg"
ln -s "$path/$file.jpg" "$path/$file-004.jpg"
...
Das ist natürlich Schrott. Je nach Anzahl der Dateien erzeuge ich unnötig viele oder zu wenige symlinks. Davon abgesehen entsteht ein langes Script, obwohl es nicht viel tut..
Allerdings weiß ich nicht, wie man nach einem variablen Filename sucht..
Könnt ihr mir sagen, was ich tun muss?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 226877
Url: https://administrator.de/forum/nummerierte-dateien-suchen-und-dazu-symlinks-jpg-erstellen-226877.html
Ausgedruckt am: 17.04.2025 um 20:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Kinkerlitzchen,
könntest du mit einer FOR-Schleife machen die alle *.dat-Files mit entsprechender Formatierung durchläuft:
Wie Bash-Stringmanipulationen funktionieren kannst du hier nachlesen. Und wie man mit ls und WildCards Dateien auflistet hier.
Grüße Uwe
könntest du mit einer FOR-Schleife machen die alle *.dat-Files mit entsprechender Formatierung durchläuft:
#!/bin/bash
path="/dein/pfad"
for x in `ls -1 $path/List*-???.dat`;do
image=${x%-*}.jpg
ln -sf "$image" "${x%.*}.jpg"
done
Grüße Uwe