ファイルのタイムスタンプをtouchコマンドで変更する
touchコマンドでタイムスタンプを変更する
ファイルのタイムスタンプを指定した時間に変更するには、「touch」コマンドを使用すると変更できます。
あまりタイムスタンプを変更する必要はないかと思いますが、特定の日数を経過したファイルを削除するスクリプトやCron等の動作確認で使う必要があるケースがありますので紹介します
指定した時刻にタイムスタンプを変更する
ファイルのタイムスタンプを指定した日時変更するには「-t」のオプションを指定します。
日付の形式は「[[CC]YY]MMDDhhmm[.ss]」の形式です。2017年10月25日10時の場合は、「201710251000」となります
# 2017年10月25日10時にタイムスタンプを指定してファイルを作製します $ touch -t 201710251000 test.txt # ファイルのタイムスタンプを確認します $ ls -l test.txt -rw-rw-r-- 1 hoge hoge 32 10月 25 10:00 test.txt $ stat test.txt File: `test.txt' Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 5810b651h/1477490257d Inode: 15471913 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ex-adm) Gid: ( 1000/ ex-adm) Access: 2017-10-25 10:00:00.000000000 +0900 Modify: 2017-10-25 10:00:00.000000000 +0900 Change: 2018-05-09 14:21:26.709457738 +0900 Birth: -
「-t」のオプション以外に「–date」のオプションでも変更できます。この場合の日付の指定方法は、"Sun, 29 Feb 2004 16:21:42 -0800″ や “2004-02-29 16:21:42" などの日付で指定できます。
# 2004年2月29日16時21分42秒にタイムスタンプを指定してファイルを作製します $ touch --date "2004-02-29 16:21:42" test.txt $ stat test.txt File: `test.txt' Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 5810b651h/1477490257d Inode: 15471913 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ex-adm) Gid: ( 1000/ ex-adm) Access: 2004-02-29 16:21:42.000000000 +0900 Modify: 2004-02-29 16:21:42.000000000 +0900 Change: 2018-05-09 14:25:29.980928779 +0900 Birth: -
$ ls -l test.sh -rw-rw-r-- 1 hoge hoge 88 10月 25 10:24 test.sh $ touch -t 201710251000 test.sh $ ls -l test.sh -rw-rw-r-- 1 hoge hoge 88 10月 25 10:00 test.sh
他のファイルと同じタイムスタンプを変更する
他のファイルと同じタイムスタンプに設定するには「 touch -r file1 file2 」のオプションを使用します
$ ls -l | grep txt -rw-rw-r-- 1 hoge hoge 32 10月 25 00:00 test.txt -rw-rw-r-- 1 hoge hoge 0 10月 25 10:33 test1234.txt # test.txt のタイムスタンプと、test1234.txtのタイムスタンプを同じにします $ touch -r test.txt test1234.txt $ ls -l | grep txt -rw-rw-r-- 1 hoge hoge 32 10月 25 00:00 test.txt -rw-rw-r-- 1 hoge hoge 0 10月 25 00:00 test1234.txt
ディスカッション
コメント一覧
まだ、コメントがありません