touchコマンドは、ファイルのタイムスタンプを変更するコマンドです。
しかし、実際には空ファイルの作成に用いる場合のほうがとても多いコマンドです。
目次
touchコマンドとは
指定されたファイルのアクセス時間(atime)や修正時間を変更することができます。
また、指定されたファイルが存在しない場合は空のファイルを作成します。
touchコマンドの利用例
空のファイルを作成
(オプションなし)
touchコマンドの引数のファイルが存在しない場合は、touchコマンドは空のファイルを作成します。
コマンド例では、「file」という名前の空ファイルを作成しています。
コマンド例
1 |
touch file |
タイムスタンプの変更
(オプションなし)
touchコマンドの引数のファイルが存在する場合、touchコマンドはそのファイルのタイムスタンプを変更します。
タイムスタンプはアクセス時間と修正時間の両方が現在時間に変更されます。
コマンド例
1 |
touch file |
実行前のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 20:49:53.454346277 +0900 Modify: 2017-09-07 20:49:53.454346277 +0900 Change: 2017-09-07 20:49:53.454346277 +0900 Birth: - |
実行後のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 21:11:20.993794278 +0900 Modify: 2017-09-07 21:11:20.993794278 +0900 Change: 2017-09-07 21:11:20.993794278 +0900 Birth: - |
アクセス時間のみを変更
(-aオプション)
-aオプションを用いるとアクセス時間のみを現在時間に変更することができます。
コマンド例
1 |
touch -a file |
実行前のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 21:15:57.363910278 +0900 Modify: 2017-09-07 21:15:57.363910278 +0900 Change: 2017-09-07 21:15:57.363910278 +0900 Birth: - |
実行後のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 21:20:18.722603461 +0900 Modify: 2017-09-07 21:15:57.363910278 +0900 Change: 2017-09-07 21:20:18.722603461 +0900 Birth: - |
修正時間のみを変更
(-mオプション)
-mオプションを用いると修正時間のみを現在時間に変更することができます。
コマンド例
1 |
touch -m file |
実行前のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 21:22:19.250603461 +0900 Modify: 2017-09-07 21:22:19.250603461 +0900 Change: 2017-09-07 21:22:19.250603461 +0900 Birth: - |
実行後のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 21:22:19.250603461 +0900 Modify: 2017-09-07 21:22:48.186603461 +0900 Change: 2017-09-07 21:22:48.186603461 +0900 Birth: - |
ファイル作成しない
(-cオプション)
-cオプションはファイルが存在しない場合に、ファイル作成を行いません。
コマンド例
1 |
touch -c file2 |
実行前のディレクトリ内容(lsコマンド)
1 |
file |
実行後のディレクトリ内容(lsコマンド)
1 |
file |
タイムスタンプの時間を指定
(-dオプション)
-dオプションは、タイムスタンプを現在時間の代わりに指定することができます。
コマンド例
1 |
touch -d"2000-01-01 12:34:56.123456789 +0900" file |
実行前のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 22:10:12.726603461 +0900 Modify: 2017-09-07 22:10:12.726603461 +0900 Change: 2017-09-07 22:10:12.726603461 +0900 Birth: - |
実行後のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2000-01-01 12:34:56.123456789 +0900 Modify: 2000-01-01 12:34:56.123456789 +0900 Change: 2017-09-07 22:10:59.638603461 +0900 Birth: - |
フォーマットでタイムスタンプの時間を指定
(-tオプション)
-tオプションは、[cc[yy]]mmddhhmm[.ss]の形式でタイムスタンプの時間を指定することができます。
コマンド例
1 |
touch -t"200001011234.56" file |
実行前のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 23:03:57.522603461 +0900 Modify: 2017-09-07 23:03:57.522603461 +0900 Change: 2017-09-07 23:03:57.522603461 +0900 Birth: - |
実行後のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2000-01-01 12:34:56.000000000 +0900 Modify: 2000-01-01 12:34:56.000000000 +0900 Change: 2017-09-07 23:04:21.174603461 +0900 Birth: - |
ファイルからタイムスタンプの時間を指定
(-rオプション)
-rオプションは、ファイルのタイムスタンプを参照して、タイムスタンプを指定することができます。
コマンド例
1 |
touch -r reftime file |
reftimeのタイムスタンプ(statコマンド)
1 2 3 4 5 6 7 8 |
File: reftime Size: 9 Blocks: 8 IO Block: 4096 通常ファイル Device: 801h/2049d Inode: 12848264 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2000-01-01 12:34:56.123456789 +0900 Modify: 2010-12-21 21:43:21.987654321 +0900 Change: 2017-09-07 23:15:51.814603461 +0900 Birth: - |
実行前のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2017-09-07 23:16:55.870603461 +0900 Modify: 2017-09-07 23:16:55.870603461 +0900 Change: 2017-09-07 23:16:55.870603461 +0900 Birth: - |
実行後のタイムスタンプの確認(statコマンド)
1 2 3 4 5 6 7 8 |
File: file Size: 0 Blocks: 0 IO Block: 4096 通常の空ファイル Device: 801h/2049d Inode: 12847840 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu) Access: 2000-01-01 12:34:56.123456789 +0900 Modify: 2010-12-21 21:43:21.987654321 +0900 Change: 2017-09-07 23:17:22.814603461 +0900 Birth: - |
参考
外部リンクGnu Coreutils
外部リンクGnu Coreutils日本語版