it-swarm.dev

"Standard" -Format zur Verwendung eines Zeitstempels als Teil eines Dateinamens

Ich suchte nach einem Standardformat für die Verwendung eines Datums/einer Uhrzeit als Teil eines Dateinamens und konnte nichts finden.

Meine Frage besteht aus zwei Teilen:

Verwendet Zeitstempel einzigartig durchsetzen in Dateinamen eine schlechte Praxis?

Ich könnte die Zeit vom Erstellungsdatum abrufen und die Dateinamen (file0001.bak, file0002.bak usw.) serialisieren, aber nur durch Einbeziehen des Zeitstempels können Dateivorgänge wie mv 2011-01* somewhere/ Ausgeführt werden. Gibt es einen Nachteil bei der Verwendung dieser Art von Benennungssystem?

Das von mir verwendete Format ist YYYY-mm-dd_HH-MM-SS.

Gibt es ein besseres Format, das ich verwenden sollte?

Sollte ich mich bei diesem Format mit der Dateisystemkompatibilität, Bedenken hinsichtlich str_to_date_parsing usw. befassen?

Vielen Dank!

bearbeiten:

Ich wollte vielleicht das Eindeutigkeitsbit erzwingen weglassen, da es sich um einen einzelnen Benutzer handelt, der ein Backup mit einem Cronjob generiert (es sollte keine Parallelitätsprobleme geben).

93
kriegar

Sie sollten das ISO 8601-Format (2013-04-01T13: 01: 02) berücksichtigen. Ja, es gibt Standards für diese Dinge. Die Doppelpunkte und Bindestriche können weggelassen werden.

Die Formatzeichenfolge, die ich normalerweise verwende, ist %Y%m%dT%H%M%S ergibt 20130401T130102. Je nach Anforderung lasse ich Werte von links weg. In einem Bash-Skript erhalte ich das Datum mit einer Zeile wie:

LOGDATE=$(date +%Y%m%dT%H%M%S)
65
BillThor

Ich suchte nach einem Standardformat für die Verwendung eines Datums/einer Uhrzeit als Teil eines Dateinamens und konnte nichts finden.

Meine Frage besteht aus zwei Teilen:

Ist die Verwendung eines Zeitstempels zum Erzwingen eindeutiger Dateinamen eine schlechte Praxis?

Nein, alles in Ordnung.

Ich könnte die Zeit vom Erstellungsdatum abrufen und die Dateinamen (file0001.bak, file0002.bak usw.) serialisieren.

Die fortlaufende Nummerierung ist mehr Arbeit. Stellen Sie sich den Zeitstempel als eine zunehmende, aber nicht fortlaufende Nummerierung vor.

wenn Sie jedoch nur den Zeitstempel einbeziehen, können Sie Dateivorgänge wie mv 2011-01 * irgendwo/ausführen. Gibt es einen Nachteil bei der Verwendung dieser Art von Benennungssystem?

Nein, es ist die ganze Zeit erledigt.

Das von mir verwendete Format ist JJJJ-mm-TT_HH-MM-SS.

Das ist gut, denn sie werden in chronologischer Reihenfolge sortiert. Ich würde den Unterstrich verlieren, nur weil es einfacher ist, einen Bindestrich einzugeben.

Gibt es ein besseres Format, das ich verwenden sollte?

Nicht wirklich.

5
kevin cline

Das hängt von Ihrer Bewerbung ab. Manchmal kann ein Zeitstempel wie der von Ihnen beschriebene verwendet werden. Manchmal, wenn eine Namenskollision ein Problem darstellt, können Sie einen GUID Generator verwenden.

3
grokus

Mit dem ISO 8601-Format können Sie die Dateien auch nach Datum sortieren (vorausgesetzt, sie haben alle das gleiche Präfix).

http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/date_and_time_format.htm
http://en.wikipedia.org/wiki/ISO_8601

2
Tangurena

Das von Ihnen verwendete Format ist in Ordnung. Wenn Sie jedoch Eindeutigkeit wünschen und die Zeit keine andere Bedeutung hat, kann es zu Problemen mit der Parallelität in Ihrer Anwendung kommen, wenn die Anwendung von mehreren Benutzern gleichzeitig verwendet wird und alle dazu führen, dass Dateien in derselben Zeit erstellt werden Mappe. Wenn Sie nur die Eindeutigkeit wünschen, können Sie GUID] generieren und ungültige Zeichen wie geschweifte Klammern und Bindestriche entfernen und als Dateinamen verwenden.

2
M.Sameer