Linux'ta geçerli tarih ve saat adında bir dosya nasıl yapılır


12

Geçerli bir tarih ve saat olan bir dosya yapmak istiyorum. touchKomut ile bir dosya oluşturabilirim . Ayrıca datekomut ile şimdiki zaman alabilirim . Yani, sanırım, bir şekilde ikinci komutu ilkiyle birleştirmem gerekiyor. Bunu nasıl yapabilirim?

Yanıtlar:


19

Kabuk ifadesinden döndürülen değeri şu şekilde bağımsız değişken olarak kullanın touch:

touch $( date '+%Y-%m-%d_%H-%M-%S' )

Sonuç: Örn 2012-03-11_14-33-53.

Bu cevap kullandığınızı varsayar bash( Komut Değiştirmeman sayfa bölümünde açıklanmıştır ), ancak diğer mermiler aynı veya sadece biraz farklı çalışır.


@MdGao Ve man sayfasının aynı bölümünde anlatıldı. Yine de verdiğim yanıtı tercih ediyorum, birkaç neden var
Daniel Beck

Yorumumu kaldırdım çünkü Markdown backticks kırdı. @DanielBeck bağlantısı için teşekkürler
Mengdi Gao

2
@gasan Sadece "tırnak işaretleri içine alın. Sen çıktısını tahmin edebilirsiniz datekomut satırında bir kısmının değiştirilmesi ve touch Sun Mar 11 14:48:31 CET 2012dosyalar isim yaratacak Sun, Marvb touch "Sun Mar 11 14:48:31 CET 2012"diğer taraftan (Ben iki nokta üst üste nasıl çalışacağını iyi emin değilim hariç) para cezası çalışır.
Daniel Beck

2
@gasan Tek tırnak işaretleri komut yerine veya başka bir yoruma izin vermediği için çalışmaz. Bash kılavuzundaki alıntıya bakın .
13'te slhck

2
@gasan Fark, tek tırnak içeriğinin değerlendirilmemesidir. İle deneyin echo "$HOME"ve echo '$HOME'. Bu yüzden kullanımını önerdim ".
Daniel Beck

0

Daha basit bir komut kullanabilirsiniz

touch $(date | tr ' ' '-')

Biraz daha zarif ve tartışmasız daha az taşınabilir, ancak evet, bu da işe yarayacak.
Scott

Tamam, bunu okuduğunuzu bildiğim için, biraz daha ayrıntıya gireceğim: Daniel'in cevabı bilinen ve tamamen kontrol edilen bir formatta sonuç veriyor. (1) 'den gelen çıktı datetipik olarak ss: dd: ss olarak zamanı gösterir. Yanıtınız iki nokta üst üste içeren dosya adları ile sonuçlanır. Bu, Windows tabanlı dosya sistemlerinde hataya neden olabilir. (2) Basit bir çağrıdan elde edilen ham çıktı date, yerel ayara bağlıdır; yani, yerel dile göre özelleştirilebilir. Deneyin LANG=de_DE dateve LANG=fr_FR dateörnekleri görmek için. … (Devamı)
Scott

(Devam)… (2a) Bu nedenle, (olası değil mi?) Olayında, sisteminizdeki dili değiştirdiğiniz veya sisteminizden bir sistem için yapılandırılmış olan birine komut dosyanızı ve veri dosyalarının bir koleksiyonunu veriyorsunuz farklı bir dilde uyumsuzluk olacaktır. (Bunun gerçek bir sorun olacağından emin değilim, ama estetik bir sorun olurdu.) (2b) Bunu yapan herhangi bir yerel ayar bilmiyorum, ancak teorik olarak datetarihi şu şekilde yazan bir yerel ayar olabilir: aa / gg / yy (veya gg / aa / yy). … (Devamı)
Scott

(Devam)… Böyle bir sistemle daha önce karşılaşırsanız, eğik çizgiler içeren dosya adlarınız olur ve bu da hatalara neden olur. (3) Daniel'in cevabı lsveya tarafından üretilen sözlükbilimsel (yani alfabetik) düzenin *kronolojik düzene karşılık geldiği bir sonuç verir . Cevabınızı ile tüm Fridosyaları herhangi sözlük sırasında sıralı listenin başında olacak ve Aprve Augdiğer tüm aydan önce görünecektir.
Scott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.