it-swarm.asia

Bir dosya adının parçası olarak zaman damgası kullanmak için "standart" biçim

Dosya adının bir parçası olarak tarih/saat kullanmak için standart bir biçim aradım ve hiçbir şey bulamadım.

Sorum iki bölümden oluşuyor:

Zaman damgası kullanıyor benzersiz uygulamak dosya adlarında kötü bir uygulama?

Ben oluşturma tarihinden itibaren zaman alabilir ve dosya adlarını serileştirmek (file0001.bak, file0002.bak, vb) ama sadece zaman damgası dahil mv 2011-01* somewhere/ Gibi dosya işlemleri gerçekleştirmek sağlar. Bu tür adlandırma sistemini kullanmanın bir dezavantajı var mı?

Kullandığım biçim YYYY-mm-dd_HH-MM-SS.

Kullanmam gereken daha iyi bir format var mı?

Bu format ile dosya sistemi uyumluluğu, str_to_date_parsing endişeleri vb.

Teşekkürler!

düzenle:

Ben bir cronjob kullanarak yedekleme üreten tek bir kullanıcı (herhangi bir eşzamanlılık sorunu olmamalıdır) çünkü zorlamak benzersiz bit dışarıda bırakmak isteyebilirsiniz.

93
kriegar

ISO 8601 biçimini göz önünde bulundurmalısınız (2013-04-01T13: 01: 02). Evet, bunlar için standartlar var. Sütunlar ve kısa çizgiler göz ardı edilebilir.

Genellikle kullandığım biçim dizesi %Y%m%dT%H%M%S verim 20130401T130102. Gereksinimlere bağlı olarak değerleri soldan çıkarıyorum. Bir bash betiğinde tarih gibi bir çizgi ile olsun:

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

Dosya adının bir parçası olarak tarih/saat kullanmak için standart bir biçim aradım ve hiçbir şey bulamadım.

Sorum iki bölümden oluşuyor:

Benzersiz dosya adlarını zorunlu kılmak için zaman damgası kullanmak kötü bir uygulama mıdır?

Hayır, bu iyi.

Oluşturma tarihinden itibaren zamanı alabilir ve dosya adlarını serileştirebilirim (file0001.bak, file0002.bak, vb.)

Bunları sırayla numaralandırmak daha fazla iştir. Zaman damgasını artan ancak sıralı olmayan bir numaralandırma olarak düşünün.

ancak sadece zaman damgası dahil mv 2011-01 * gibi bir yerde dosya işlemleri gerçekleştirebilmenizi sağlar. Bu tür adlandırma sistemini kullanmanın bir dezavantajı var mı?

Hayır, her zaman yapılır.

Kullandığım biçim YYYY-aa-gg_HH-AA-SS.

Bu iyi, çünkü kronolojik sırayla sıralayacaklar. Alt çizgiyi kaybederim, çünkü kısa çizgi yazmak daha kolaydır.

Kullanmam gereken daha iyi bir format var mı?

Pek sayılmaz.

5
kevin cline

Uygulamanıza bağlıdır. Bazen tarif ettiğiniz gibi bir zaman damgası kullanılabilir. Bazen isim çarpışması bir endişe olduğunda GUID jeneratörü kullanabilirsiniz.

3
grokus

ISO 8601 biçimini kullanmak, dosyaları tarihe göre sıralamanıza da izin verir (hepsinin aynı ön eke sahip olduğu varsayılarak).

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

Kullandığınız biçim iyi ancak benzersizlik istiyorsanız ve zamanın başka bir anlamı yoksa, uygulama aynı anda birden fazla kullanıcı tarafından kullanılıyorsa ve hepsi dosyaların aynı şekilde oluşturulmasına neden oluyorsa, uygulamanızda eşzamanlılık sorunu yaşayabilirsiniz. Klasör. Sadece benzersizlik istiyorsanız, GUID üretilmesini ve süslü parantez ve tire gibi geçersiz karakterleri kaldırmayı ve dosya adı olarak kullanabilirsiniz.

2
M.Sameer