Zum Inhalt springen

Datum?


debitux

Empfohlene Beiträge

wie wärs mit dem Kommando 'touch' ?

Beschreib bitte mal genauer, was du mit - "in Dateinamen umändern" meinst

meinst du vielleicht sowas hier: ????

user@machine:~> datei=x; touch $datei; currenttimestamp=$(ls -l $datei | awk '{ print $8}'); mv $datei $currenttimestamp

oder wie? ich versteh nicht ganz was du suchst?

Link zu diesem Kommentar
Auf anderen Seiten teilen

in $8 'befindet' sich der Wert 8ten Spalte, den 'ls -l' ausgibt;

da du den Dateinamen noch mit angibst ist Zeile und Spalte genau definiert und der Wert in Feld '$8' wird in die Variable $8 gespeichert

ich finde es nicht schlau dass du die Datei in dem Format "mm/dd/jj" angeben willst (date +%D), denn es kann auch sein dass sich Daten nicht nur einmal am Tag ändern sondern auch im Sekundentakt oder etwa nicht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von MuhKuh

Hi Leutz,

wie kann ich in einem Shellskript Dateien ins aktuelle Datum (als Dateiname) umändern?

Auf SuSE-Distris (ab welcher weiß ich nich, aber ab 7.3 bestimmt) gibt es ein kleines Shellscript namens "old", das macht z.B. sowas:

fstab -> fstab-20020925

Das Script sieht so aus:

#!/bin/bash

#

# This script simply renames files or directories to <name>-<date>[<num>]

#

# Copyright © 1996-2002 SuSE Linux AG, Nuernberg, Germany.

#

# please send bugfixes or comments to feedback@suse.de.

#

#

# usage - tell user to use program

#

function usage() {

echo usage: "$0" file\|dir [file\|dir ...]

}

if [ $# -eq 0 ] ; then

usage

exit

fi

DATESTRING=`date +"%Y%m%d"`

for i in "$@" ; do

i=${i%%/}

if [ -e "$i" ] ; then

NEWNAME=$i-$DATESTRING

NUMBER=0

while [ -e "$NEWNAME" ] ; do

NEWNAME=$i-$DATESTRING-$NUMBER

let NUMBER=$NUMBER+1

done

echo moving "$i" to "$NEWNAME"

mv "$i" "$NEWNAME"

else

echo "$i" does not exist.

fi

done

#--------------------------------------------

Ciao,

Christopher

Link zu diesem Kommentar
Auf anderen Seiten teilen

habs gerade ausprobiert (hab auch noch SuSE 7.3 am laufen ;-)) und das funzt einwandfrei. Wie wäre es nun mit diesem kleinen Helferlein und einer while Schleife, die sagen wir alle 5 sek. checkt, ob etwas Neues ins Verzeichnis gekommen ist, falls ja - dann mit old verwurstet und falls nichts Neues kam dann nix tut??

Link zu diesem Kommentar
Auf anderen Seiten teilen


host:~/shelltest # ls -1

.

..

bla.log

foo.log

mumpfpuffel.log

test.sh

host:~/shelltest # ./test.sh 

cp bla.log bla.log20020930-1421-1

cp foo.log foo.log20020930-1421-2

cp mumpfpuffel.log mumpfpuffel.log20020930-1421-3

Der Code dazu ist simpel:

#!/bin/sh


MYDATE=`date +%Y%m%d-%H%M`

MYCOUNT=1

MYPATTERN='*.log'


ls -1 ${MYPATTERN} | ( while read MYFILE

do

  MYNEWFILE=${MYFILE}${MYDATE}-${MYCOUNT}

  echo cp $MYFILE $MYNEWFILE

  MYCOUNT=`expr $MYCOUNT + 1`

done

)

Wie man sieht echo'd das Script im Moment nur den Copy-Befehl.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...