ファイルのバックアップを作る時に日付を付与するワンライナー
ファイルバックアップする時に下記のようなコマンドで、ファイル名に日付をつけてバックアップすることがあります。
$ cp /home/admin/test.txt /home/admin/test_20230907.txt
これ普通にバックアップする時にあまり面倒だと思いませんが、運用の作業で以下のような手順書がある場合に、コマンドをコピペでコマンドが叩けず、日付の箇所をその都度、個別に修正するのが面倒でdateコマンドを使って、ワンライナーでできないかと調べたらできました。
# 各種ファイルをバックアップする。YYYYMMDDの箇所は作業を実施する日付に置き換える $ cp -p /home/admin/test.txt /home/admin/test_YYYYMMDD.txt $ cp -p /home/admin/test.conf /home/admin/test_YYYYMMDD.conf $ cp -pr /home/admin/test/ /home/admin/test_YYYYMMDD/
日付の箇所を、dateコマンドを利用して「$(date +%\%m%d)」のように変数にして実行すれば実施日の日付が入ります。
dateコマンドですので、日付のフォーマットは任意で変更できます。よく使う手順書でバックアップ時に日付を付与する箇所はdateコマンドで日付を付与する方法に変更しました。
環境によってはdateコマンドの実行時に「%」の箇所にエスケープ処理が必要な場合があります。エラーなどが上がる場合は「$(date +\%Y\%m\%d)」と%にエスケープ処理を追加してください
$ cp test.txt test_$(date +%Y%m%d).txt $ ls -l total 2 -rw-r--r-- 1 admin admin 0 Sep 2 10:26 test.txt -rw-r--r-- 1 admin admin 0 Sep 7 13:26 test_20230907.txt # 「%」にエスケープ処理した場合のコマンド $ cp test.txt test_$(date +\%Y\%m\%d).txt
ディスカッション
コメント一覧
まだ、コメントがありません