Bugünün tarihini alın ve dosya adında kullanın


10

Komut satırını kullanarak, adında bugünün tarihiyle bir günlük dosyası oluşturmak istiyorum (örneğin, bugün 05/17/2011, bu yüzden dosya adı olması gerekir log051711).

( touch filename) Dosyasının nasıl oluşturulacağını biliyorum , ama bugünün tarihini nasıl alacağımı bilmiyorum. El kitabına baktım date, ancak çıktısını gerçekten biçimlendiremiyorum gibi görünüyor mu?

Herhangi bir yardım mutluluk duyacağız.

Yanıtlar:


10

Çıktıyı '+ FORMAT' parametresini kullanarak biçimlendirebilirsiniz, örn.

touch "log$(date +'%m%d%y')"

FORMAT'ta kullanabileceğiniz sekanslar için kılavuz sayfasına bakın.


Lanet olsun, 36 saniye çok yavaş. ;-)
htorque

1
Sadece bunu bir cron işinde kullanmak için,%-işaretlerinden kaçmak zorunda olduğumu anladım, böylece okudu:touch "log$(date +'\%m\%d\%y')"
Louis B.

3

Komutu çalıştırma

echo "myfilename-"`date +"%d-%m-%Y"`

bunu çıktı olarak verir:

myfilename-21-02-2014

Aslında bu yazdırılacaktır myfilename-date +%d-%m-%Y.
Adaephon

Doğru .. MyFileName sadece bir önek .. Gerekirse saklayabiliriz, başka .. echo date +"%d-%m-%Y" bu yeter ... sadece tarihi basacaktır 21-02-2014
Sreedhar GS

Ah, şimdi anlıyorum: Kafan karıştı çünkü `` cevabınızda görünmedi. Bunun nedeni, kod bloklarını belirtmek için askubuntu tarafından kullanılmasıdır. Kodu, çentiklerle çevreleyerek veya paragrafı 4 boşluklu kodla girintili olarak işaretlemelisiniz. Yeni başlayanlar için muhtemelen düzenleyicinin üzerindeki menüyü kullanmanız ve göndermeden önce metin kutusunun altındaki önizlemede yayınınızı kontrol etmeniz gerekir.
Adaephon

0

Olası ruhlardan biri:

date +log%y%m%d | xargs touch

yaratır log111017


0

Eminim başka birinin bunu yapmanın daha iyi bir yolu vardır, ancak ay-gün-yıl istediğinizi varsayarsak, bu işe yarar:

touch log`date +%m%d%y`  

ve istediğiniz siparişi yansıtmak için% m,% d,% Y değerlerini yeniden sıralayabilirsiniz. Tarih için kılavuz sayfası size ek biçimler hakkında daha fazla bilgi verir.


0

Python da bu işi yapabilir. Bunun için küçük komut dosyası şöyledir:

#!/usr/bin/env python
import time,os

date=time.gmtime()
month = str(date.tm_mon).zfill(2)
day=str(date.tm_mday).zfill(2)
year=str(date.tm_year)[-2:]
fname = 'log' + month + day + year

with open(fname,'a') as f:
    os.utime(fname,None) 

Buradaki fikir basit: time.gmtime()geçerli tarihi almak, döndürdüğü yapıdan belirli alanları ayıklamak, uygun alanları dizelere dönüştürmek ve ortaya çıkan adla dosya adı oluşturmak için kullanıyoruz.

Test sürüşü:

$ ls
touch_log_file.py*
$ ./touch_log_file.py                                                                                             
$ ls
log010317  touch_log_file.py*

Yazma anında 3 Ocak 2017'dir. Sonuçta ortaya çıkan dosya adı uygun şekilde ay, gün, yıl - log010317

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.