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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 226877
Url: https://administrator.de/contentid/226877
Printed on: May 4, 2024 at 16:05 o'clock
2 Comments
Latest comment
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