Shell: Einzelne Datei umbenennen

Musste erstmal essen ;).

Code:
#!/bin/sh
COUNT=1
DATUM=$(date +%Y%m%d%H%I%s)
for i in `ls`; do
 mv $i /meine/dateien/$DATUM.$COUNT.gif 
 COUNT=$((COUNT+1))
done
ls -c /meine/dateien/*.* > /mein/pfad/datei.txt
$COUNT muss sein, denke brauche ich nicht erklären warum ;)
Gruss
 
Zuletzt bearbeitet von einem Moderator:
habs jetzt anders gelöst, da ja nur eine datei umbenannt werden soll, nicht alle

Code:
#!/bin/bash

DATUM=$(date +%Y%m%d%H%M%S)
done=0

# echo $DATUM

for i in *.tmp* ; do

   if [ $done -eq 0 ]
   then
      mv "$i" "${DATUM}.gif" 
      done=1
   else
      break
   fi
 
done

ich glaube zwar nicht dass diese lösung elegant ist...

vielen dank euch allen
 
Nur einen Dateinamen erhältst du z.B. so
Code:
ls *.tmp* | head -n 1

Dann kann man sich die Überprüfung und die done Variable sparen.

Also statt der Schleife folgendes:
Code:
mv `ls *.tmp* | head -n 1` ${DATUM}.gif
 

Neue Beiträge

Zurück