ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

ファイルのタイムスタンプを9時間戻す

(2021-03-01 初稿 - 2021-05-17 転記・追記)

 

LinuxでSDカード等からファイルを読み込むと、なぜか9時間進んだタイムスタンプになり不便。

9時間の時差が関係していると思っているが、対策がわからない。

デジカメの写真の場合は、以下のとおりjheadを使ってExifから正しい時刻に設定しなおしている。

(インストール)
sudo apt install jhead
(使い方)
jhead -ft hoge.jpg

その他のファイルは、設定方法がわからないので、以下のbashスクリプトを作った。

初めて知ったが、dateやtouchコマンドは、時間の引き算もできて便利。

cat ~/bin/chg-fst

#!/bin/bash
# 2021-03-01 start Written by hymd3a
# CHanGe File Time Stamp 9 hours ago

if [ $#  -ne 1 ]; then
  echo "[Usage] chg-fts file"
  echo "        Change file time stamp -9 hours"
  exit
fi

motofdate=$(date "+%Y/%m/%d %H:%M:%S" -r $1 )
chgfdate=$(date "+%Y/%m/%d %H:%M:%S" -d "$motofdate 9 hour ago")

touch -d "$chgfdate" $1

実行権を与える

chmod +x bin/chg-fst

使い方

(新規ファイルを作成)
touch file1

(ファイルのタイムスタンプを確認)
ls -l file1
-rw-r--r-- 1 hoge hoge 0  3月  1 15:46 file1

(ファイルのタイムスタンプを9時間戻す)
chg-fst file1

(ファイルのタイムスタンプを確認)
ls -l file1
-rw-r--r-- 1 hoge hoge 0  3月  1 06:46 file1

(複数のファイルを一括で変更)
for f in * ; do chg-fts $f ; done

また、何かわかったら追記する。

関連ページ