web-dev-qa-db-ja.com

今日の日付を取得し、ファイル名で使用します

コマンドラインを使用して、名前に今日の日付を含むログファイルを作成します(たとえば、今日は2011年5月17日なので、ファイル名はlog051711である必要があります)。

ファイル(touch filename)の作成方法は知っていますが、今日の日付を取得する方法はわかりません。 dateのマニュアルを見ましたが、出力を実際にフォーマットできないようです。

助けていただければ幸いです。

10
Louis B.

「+ FORMAT」パラメーターを使用して出力をフォーマットできます。

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

FORMATで使用できるシーケンスについては、マンページを参照してください。

9
Florian Diesch

コマンドを実行する

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

出力としてこれを与えます:

myfilename-21-02-2014
2
Sreedhar GS

私は他の誰かがこれを行うためのより良い方法を持っていると確信していますが、あなたが月日年が欲しいと仮定すると、これはうまくいくはずです:

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

そして、希望する順序を反映するように%m、%d、%Yを並べ替えることができます。日付のマニュアルページには、追加の形式の詳細が記載されています。

0
Dason

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*

執筆時点では、2017年1月3日です。したがって、結果のファイル名は適切な月、日、年です-log010317

0

可能な解決策の1つ:

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

log111017を作成します

0
Sergey