Отримайте сьогоднішню дату та використовуйте її у імені файлу


10

Використовуючи командний рядок, я хочу створити файл журналу з сьогоднішньою датою в імені (наприклад, сьогодні 17.05.2011, тому ім'я файлу повинно бути log051711).

Я знаю, як створити файл ( touch filename), але я не знаю, як отримати сьогоднішню дату. Я переглянув посібник для date, але здається, що я не можу реально відформатувати його вихід?

Будь-яка допомога буде вдячна.

Відповіді:


10

Ви можете відформатувати вихід за допомогою параметра "+ FORMAT", наприклад,

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

Про те, які послідовності можна використовувати у FORMAT, див. На сторінці сторінки.


Чорт, 36 секунд занадто повільно. ;-)
htorque

1
Я щойно зрозумів, що для того, щоб використати це в роботі з кроном, мені довелося уникнути% -знаків, щоб воно написало:touch "log$(date +'\%m\%d\%y')"
Луї Б.

3

Запуск команди

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

дає це як вихід:

myfilename-21-02-2014

Насправді це буде надруковано myfilename-date +%d-%m-%Y.
Adaephon

Правда .. MyFileName - це лише префікс .. Якщо потрібно, ми можемо зберегти її, інакше .. відлуння date +"%d-%m-%Y" цього достатньо ... він надрукує лише дату 21-02-2014
Sreedhar GS

Ах, тепер я бачу: я заплутався, бо `не з’явилося у вашій відповіді. Це тому, що вони використовуються askubuntu для позначення кодових блоків. Ви повинні позначити код, оточуючи його за допомогою зворотних посилань або відступаючи абзац з кодом на 4 пробіли. Для початку вам, мабуть, слід скористатися меню над редактором для цього та перевірити свою публікацію у попередньому перегляді під текстовим полем перед тим, як надсилати.
Adaephon


0

Я впевнений, що хтось інший має кращий спосіб зробити це, але припускаючи, що ви хочете місяць-день-рік, це має спрацювати:

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

і ви можете переупорядкувати% m,% d,% Y, щоб відобразити потрібне впорядкування. Сторінка чоловіка для дати розповість вам більше про додаткові формати.


0

Python також може виконати цю роботу. Невеликий сценарій для цього буде наступним:

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

Ідея тут проста: ми використовуємо time.gmtime() для отримання поточної дати, вилучення конкретних полів із структури, яку вона повертає, перетворення відповідних полів у рядки та створення імені файлу з отриманим іменем.

Пробіг:

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

На момент написання цього повідомлення - 3 січня 2017 року. Таким чином, отримане ім'я файлу є відповідно місяцем, днем, роком - log010317

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.