Dapatkan tanggal hari ini dan gunakan dalam nama file


10

Dengan menggunakan command-line, saya ingin membuat file log dengan tanggal hari ini di namanya (misalnya, hari ini 17/5/2011, jadi nama filenya harus log051711).

Saya tahu cara membuat file ( touch filename), tetapi saya tidak tahu cara mendapatkan tanggal hari ini. Saya telah melihat manualnya date, tetapi sepertinya saya tidak bisa memformat outputnya?

Bantuan apa pun akan dihargai.

Jawaban:


10

Anda dapat memformat output menggunakan parameter '+ FORMAT', mis

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

Lihat halaman manual untuk urutan apa yang dapat Anda gunakan di FORMAT.


Sial, 36 detik terlalu lambat. ;-)
htorque

1
Saya baru tahu bahwa untuk menggunakan ini dalam pekerjaan cron, saya harus melarikan diri dari% -signs, sehingga terbaca:touch "log$(date +'\%m\%d\%y')"
Louis B.

3

Menjalankan perintah

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

memberikan ini sebagai output:

myfilename-21-02-2014

Sebenarnya ini akan dicetak myfilename-date +%d-%m-%Y.
Adaephon

Benar .. MyFileName hanyalah awalan .. Jika diperlukan kita bisa menyimpannya, kalau tidak .. gema date +"%d-%m-%Y" ini sudah cukup ... hanya akan mencetak tanggal 21-02-2014
Sreedhar GS

Ah, sekarang saya mengerti: Saya bingung karena `tidak muncul dalam jawaban Anda. Ini karena mereka digunakan oleh askubuntu untuk mengindikasikan blok kode. Anda harus menandai kode dengan mengelilinginya dengan backticks atau dengan indentasi paragraf dengan kode dengan 4 spasi. Sebagai permulaan, Anda mungkin harus menggunakan menu di atas editor untuk itu dan memeriksa posting Anda di pratinjau di bawah kotak teks sebelum mengirimkan.
Adaephon

0

Salah satu kemungkinan soulions:

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

menciptakan log111017


0

Saya yakin ada orang lain yang memiliki cara yang lebih baik untuk melakukan ini tetapi dengan asumsi Anda ingin bulan-hari-tahun ini bisa berfungsi:

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

dan Anda dapat menyusun ulang% m,% d,% Y untuk mencerminkan pemesanan yang Anda inginkan. Halaman manual untuk tanggal memberi tahu Anda lebih banyak tentang format tambahan.


0

Python dapat melakukan pekerjaan ini juga. Script kecil untuk itu adalah sebagai berikut:

#!/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) 

Idenya di sini sederhana: kita gunakan time.gmtime()untuk mendapatkan tanggal saat ini, mengekstrak bidang tertentu dari struktur yang dikembalikan, mengonversi bidang yang sesuai menjadi string, dan membuat nama file dengan nama yang dihasilkan.

Uji coba:

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

Pada saat penulisan ini adalah 3 Januari 2017. Dengan demikian nama file yang dihasilkan tepat bulan, hari, tahun - log010317

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.