Unixzeit in einer Shell-Procedure

A

AudiCamper

Grünschnabel
Hai.

Ich benötige die Unixzeit in Sekunden in einer Procedure, um damit einen Dateinamen eindeutig zu machen.

Z.B. datname.1637826482.txt (1637826482 soll die Unixzeit sein).

Ich weiß einfach nicht, wie ich die Unixzeit in den Dateinamen bekomme. Überall lese ich von "date +%s", aber das funktioniert unter einem AIX-Unix nicht.

Bitte helft mir.

AudiCamper
 
Hi,

Wolfgang bezieht sich in diesem Thema genau auf Dein Problem (Stichwort perl).

Gruß Daniel
 
Code:
$ cp datei.txt datei.txt.`date +%s`
$ ls -l datei*
-rw-r--r-- 1 jan users 0 12. Jun 10:33 datei.txt
-rw-r--r-- 1 jan users 0 12. Jun 10:33 datei.txt.1181637208

einfach wie oben zu sehen ist den "date" - Befehl anhängen; genau an dieser Stelle wird dann die Zeit angefügt.

MfG
Psyjo
 
Danke für Eure schnellen Antworten.

@Fallout
Aus Wolfgangs-Thema erkenne ich einfach nicht, wie ich die Sekunden seit dem 1.1.1970 ausgebe. ich weiß auch nicht ob PERL eine gute Idee ist. Gibt es keine Möglichkeit die Unixzeit mit Unix-Kommandos zu erstellen.

@Psyjo
Das %s kennt mein date nicht. Das kennt wohl nur das GNU-date.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ich möchte wirklich nur die Sekunden seit 1.1.1970 in Sekunden angezeigt bekommen. Wenn möglich mit einem Unix-Befehl. :(
 
Zuletzt bearbeitet:
Was steht denn in 'man date' unter AIX so drin? nichts hilfreiches? Auch keine Verweise auf andere man-seiten?
 
Nix, was mir bisher weitergeholfen hätte. Es fehlt halt das %s ;(
 
Naja, wie dort schon beschrieben wurde, scheint das standardmäßige onboard-Werkzeug 'date' u. a. bei AIX keine %s-Formatierung (oder verlgeichbares) anzubieten. Das ist nur eine Erweiterung durch das GNU-Projekt.

Daher bietet sich als einfachste Lösung Perl an, da dieses mittlerweile wohl schon zu den Standardpaketen der bekanntesten Distributionen gehört.
Die Lösungen in dem verlinkten Beitrag passen tatsächlich nicht zu 100% auf Dein Problem, jedoch läßt sich der richtige String relativ einfach ableiten:
Code:
perl -le 'print time'
Ergibt zumindest bei mir:
[fallout@server:~]$ perl -le 'print time'
1181649405

Gruß Daniel
 
Jau, mit Perl klappt das.

Danke für die Hilfe.
 
GNU Date?
AIX?
Wir können awk nehmen, das hat nen C wrapper zur Clib Funktion strftime also kein Perl nötig.
awk ' { print strftime("%s"); }' <<< ""
perl -e 'print time'
python -c 'import time; print time.time();'
php -r 'print time();'
lua -e 'io.write(os.time(), "\n")'

alert(new Date().getTime());

Spielerei?

echo '
#include <stdio.h>
#include <time.h>
int main() {
time_t t;
time(&t);
printf ("%ld\n", t);
return 0;
} ' | gcc -x c - && ./a.out && rm -f a.out > /dev/null 2>&1

echo 'public class foo { public static void main(String[] args) { System.out.println(System.currentTimeMillis());} }' > foo.java && javac foo.java && rm -f foo.java && java foo && rm -f foo

mysql --user=USER --password=PASSWORD --execute 'SELECT UNIX_TIMESTAMP()' | sed -n "2p"
 
Zuletzt bearbeitet:

Ähnliche Themen

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Samba Dateien und Ordner verschieben

usernamen als argument übergeben

wxPython Problem

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zurück
Oben