バックアップファイル名に日付を追加する方法

バックアップファイル名に日付を追加する方法

ファイルをバックアップする必要がありますが、簡単に区別できるように、タイムスタンプを名前の一部として含めたいと思います。

コピーコマンドに現在の日付を挿入するには?

[root@mongo-test3 ~]# cp foo.txt {,.backup.`date`}
cp: target `2013}' is not a directory

[root@mongo-test3 ~]# cp foo.txt {,.backup. $((date)) }
cp: target `}' is not a directory  

[root@mongo-test3 ~]# cp foo.txt foo.backup.`date`
cp: target `2013' is not a directory

ベストアンサー1

dateコマンドはスペースを含む文字列を返すため、これは機能しません。

$ date
Wed Oct 16 19:20:51 EDT 2013

本当にこのようなファイル名が必要な場合は、文字列を引用符で囲む必要があります。

$ touch "foo.backup.$(date)"

$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:22 foo.backup.Wed Oct 16 19:22:29 EDT 2013

しかし、私の考えでは、別の文字列を追加することを検討することもできます。私は通常、次のようなものを使用します。

$ touch "foo.backup.$(date +%F_%R)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:25 foo.backup.2013-10-16_19:25

より日付マニュアルページ日付と時刻を出力するための追加の書式設定コード。

追加フォーマット

すべての権限が必要な場合は、マニュアルページを参照して次のことができます。

$ date +"%Y%m%d"
20131016

$ date +"%Y-%m-%d"
2013-10-16

$ date +"%Y%m%d_%H%M%S"
20131016_193655

メモ:date -Iまたは を使ってdate --iso-8601と同じ出力を生成できますdate +"%Y-%m-%d。スイッチはまた取ることができますさまざまな時間形式を表すパラメータ:

$ date -I=?
date: invalid argument ‘=?’ for ‘--iso-8601’
Valid arguments are:
  - ‘hours’
  - ‘minutes’
  - ‘date’
  - ‘seconds’
  - ‘ns’
Try 'date --help' for more information.

例:

$ date -Ihours
2019-10-25T01+0000

$ date -Iminutes
2019-10-25T01:21+0000

$ date -Iseconds
2019-10-25T01:21:33+0000

おすすめ記事