59137


サーバー上で、 N 日前の時刻(日付ではなく)をフォーマットしながら文字列として取得したくなりました。 `date`
コマンドによってフォーマットをかけるのは知っているのですが、これを任意に printf したりする方法が、パッと思い浮かばないと思っています。

# なので:

上記のやりたいことは、 CentOS 環境ではどのように実現されますか？

# 具体的には:

例えば、以下の様なことがやりたいです。

[code]

    $ some_command some args
    
[/code]

を例えば今(2019-09-18 15:58:00)実行すると、

[code]

    2019-09-16 15:58:00
    
[/code]

(この場合は2日まえ)

が取得される様なコマンドです。


CC BY-SA 4.0
2019-09-18T06:29:30.987
59134
2019-09-18T07:40:34.677
2019-09-18T06:59:30.983
754
754
question
centos unix command-line
N 日前の時刻を取得したい


最近のLinuxであれば`date`コマンドの`--date`オプションにて未来、または過去の日時を  
(文字列で)指定して結果を取得できます。

**manマニュアルのオプションから抜粋**

[code]

    -d, --date=STRING
        「現在」ではなく、STRING で指定された時刻を表示する
    
[/code]

**例:**

[code]

    > date --date '1 day'        # 1日後
    > date --date 'tomorrow'     # 1日後(単語で指定)
    > date --date '2 days ago'   # 2日前
    
[/code]

`2 days ago`じゃなく`2 day ago`でも動きます。また、[@metropolis
さんがコメントした](https://ja.stackoverflow.com/questions/59134/n-%e6%97%a5%e5%89%8d%e3%81%ae%e6%99%82%e5%88%bb%e3%82%92%e5%8f%96%e5%be%97%e3%81%97%e3%81%9f%e3%81%84?noredirect=1#comment63674_59134)ようにマイナス指定でもいけるようです。表示形式は通常通り、お好みでフォーマットを指定してください。  
(頻繁に使うならaliasやバッチファイルを用意してもいいかもしれません)


CC BY-SA 4.0
2019-09-18T07:40:34.677
59137
2019-09-18T07:40:34.677
3060
59134
answer