- Published on
Bash ファイルの更新日時(mtime)や作成日時(ctime)を変更する
1706文字3分で読めます–––
閲覧数
- Authors
- Name
- Shou Arisaka nyapp.buzz/shou
- short bio
- Z世代の情報技術者。Next.jsで自作SNSを個人開発中。
LinuxコマンドラインのBashにおいて、ファイルの更新日時(mtime)や作成日時(ctime)を変更する方法について紹介します。
ファイルの更新時刻をファイルへの書き込みやアクセスなしで行いたい場合があります。
と言っても、ファイルの更新をprintfやechoで行うことはできないっぽいですので、文字を加えて削除するとか面倒なことをしない限りは今回説明する方法を取ったほうが良さそうです。
# ファイルに改行が追加されてしまう
echo "" >> "${TIME_MANAGEMENT_DIR}/time_management.txt"
# ファイルに変更は加えられないが、更新日時も変更されない。
printf "" >> "${TIME_MANAGEMENT_DIR}/time_management.txt"
まずはstatでファイルの現在の更新日時やアクセス日時を確認してみます。
$stat "${TIME_MANAGEMENT_DIR}/time_management.txt"
File: '/mnt/c/time_management/time_management.txt'
Size: 385 Blocks: 0 IO Block: 4096 regular file
Device: 11h/17d Inode: 336362597169482697 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ yuis) Gid: ( 1000/ yuis)
Access: 2019-06-29 14:59:40.666044600 +0900
Modify: 2019-06-29 14:59:40.666044600 +0900
Change: 2019-06-29 14:59:40.666044600 +0900
アクセス日時の変更をするには、touch -a
を使用します。
$ /bin/touch -a --date="@1561788231" "${TIME_MANAGEMENT_DIR}/time_management.txt"
# // `1561788231` ... `date +%s`
$ /bin/touch --help
-a change only the access time
-d, --date=STRING parse STRING and use it instead of current time
-m change only the modification time
変わりましたね。
$ stat "${TIME_MANAGEMENT_DIR}/time_management.txt"
File: '/mnt/c/time_management/time_management.txt'
Size: 385 Blocks: 0 IO Block: 4096 regular file
Device: 11h/17d Inode: 336362597169482697 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ yuis) Gid: ( 1000/ yuis)
Access: 2019-06-29 15:03:51.000000000 +0900
Modify: 2019-06-29 14:59:40.666044600 +0900
Change: 2019-06-29 15:04:49.266605100 +0900
Birth: -
上記と同様に、更新日時はtouch -m
を使用します。
/bin/touch -m --date="@$( date +%s )" "${TIME_MANAGEMENT_DIR}/time_management.txt"
15歳でWordPressサイトを立ち上げ、ウェブ領域に足を踏み入れる。翌年にはRuby on Railsを用いたマイクロサービス開発に着手し、現在はデジタル庁を支えたNext.jsによるHP作成やSaaS開発のプロジェクトに携わりながら、React.js・Node.js・TypeScriptによるモダンなウェブアプリの個人開発を趣味でも行う。
フロントエンドからバックエンドまで一貫したアジャイルなフルスタック開発を得意とし、ウェブマーケティングや広告デザインも必要に応じて担当、広告運用・SEO対策・データ分析まで行う低コストかつ高品質な顧客体験の提供が好評。
国内外から200万人を超える人々に支えられ、9周年を迎えるITブログ「yuipro」の開発者、デザイナーでありライター。現在ベータ段階の自作SNS「nyapp.buzz」を日本一の国産SNSとするべく奮闘中。
何かご質問がありますか?