• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Input-Ordner erneut einlesen

Hallo,

ich habe mir ein Kontextmenü erstellt um Bilddateien direkt in CBZ (Comic Book-Format) zu packen. Ich musste die vorher aber immer noch passend umbenennen, da manche Viewer unter Android Probleme haben, wenn die Dateinamen Leerzeichen haben oder bestimmte andere Zeichen (Umlaute z. B.) oder die Dateien nicht gleich lange Datennamen haben. Hab das Skript jetzt erweitert um eine Schleife zum umbenennen:

Code:
a=1
for i ; do
  new=$(printf "%04d.jpg" "$a") #04 pad to length of 4
  mv -i -- "$i" "$new"
  let a=a+1
done

Stamm aus dem Netz, ist nicht von mir. Darunter soll nun die Erstellung der CBZ kommen. Das sieht dann so aus:

Code:
ordner=$(pwd "$@")
ordner1=${ordner##*/}								
if [ -f "$ordner1".cbz ]
 then
  yad --text 'Datei existiert bereits. Überschreiben?' --button-gtk-no:1 --button-gtk-yes:0
  foo=$?												
  [[ $foo -eq 1 ]] && exit 0								
  [[ $foo -eq 0 ]] && zip -j "$ordner1".cbz "$@" && exit 0
 else
  zip -j "$ordner1".cbz "$@"	
fi

Die CBZ-Datei erhält automatisch den Namen des übergeordneten Ordners. Problem ist nun, dass beim Starten des Scriptes ja die alten Dateinamen eingelesen werden, die aber im ersten Teil des Skriptes geändert werden und nun für den zweiten Teil nicht mehr passen. Wie kann ich das hinbiegen, dass er die geänderten Dateinamen verwendet? Mir fällt spontan nur ein daraus zwei Scripte zu machen und das zweite mit dem CBZ-Teil zu starten und den Ordner nochmal (nun mit den geänderten Dateinamen) einlesen zu lassen.

bunter fisch
 

framp

Moderator
Teammitglied
Nachdem Du alle Dateien umbenamst hast sollte folgende Schleife tun was Du suchst:

Code:
for file in *.jpg; do
        echo "Processing $file" 
done
 
OP
B

bunter fisch

Member
Er soll ja die Dateien packen die ich vorher per Maus markiert hab. Das Script startet per Kontext Menü im File Manager. Hätte ich erwähnen sollen. Es kann also Dateien, auch mit gleichem Format, die nicht gepackt werden sollen.

Oder alternativ erst danach im Archiv umbenennen, wenn das möglich ist?
 
OP
B

bunter fisch

Member
Ich hab eine andere Idee. Man könnte das Ergebnis der For-Schleife in eine Liste ausgeben lassen und diese Liste - dann also die neuen Dateinamen - als Dateiliste an zip verfüttern.

Ich bekomme nur leider nicht heraus wie ich die For-Schleife als Variable speichere.
 
Oben