こんにちは、AWSが面白いので基礎となるLinuxを学び直しているねこだくさんです。
今回はファイルを作成するときになんとなく使っているtouchコマンドについて学びます。
コマンド操作についてはいつもの通りEnvaderで実行しています。
猫たちはいつもの通りそのへんで転がっています。
touchコマンドとは
ファイルを作成するコマンドとして使用してきましたが、本来はファイルのタイムスタンプを変更するためのコマンドです。
タイムスタンプとは?
ファイルの最終更新日のことです。
タイムスタンプ変更
touchコマンドの役割というのは理解しましたが、どのようなときに使用するのでしょうか?
結論から言うと有用な用途を説明しているサイトは見つけることができませんでした。
ファイルの最終更新日を改ざんするためのものとの説明もありましたが、それこそ意味がわかりません。
大体のサイトが操作を説明するにとどめているので、そういうものだと思うことにしました。
話を戻します。
例えば、test.fileというファイルの最終更新日を現在に変更するには
touch test.file
とコマンドを入力します。
ファイルの中身は変更せずにtouchコマンドを実行することで最終更新日が変更されます。
何らかの理由でファイルの中身を変更せずに最終更新日を変更するというのが用途の一つです。
なんのために?とは思いますがそういう機能があるということが大事なんだと思います。
touchコマンドのオプション
コマンドのオプションとして以下があります。
Option | Description |
---|---|
-t | [[CC]YY]MMDDhhmm[.ss]の書式に則り、タイムスタンプを指定した日時に更新します。 |
-d | 日時を文字列で指定して、タイムスタンプを更新します。 |
-c | 存在しないファイル名を指定しても、空の新規ファイルを作成しません。 |
-r | 指定した他のファイルのタイムスタンプに合わせて更新されます。 |
-m | ctimeのみを変更します。 |
-cオプションなどは意味がわかりませんでしたが、最終更新日変更する際にファイル名指定間違いをした場合に余計なファイルを作成することを防ぐ用途なんだと思います。
ファイルの作成
こちらは使い慣れていると思います。
以下のコマンドでファイルを作成することができます。
touch ファイル名
新規ファイルが作成されます。
はいそこEditorで作成するから使わないとか言わない。
学んだこと
touchコマンドの操作方法やオプションを学びました。
学びましたが、ファイル作成はともかく最終更新日をいじる意味は偽装以外になにかあるのかいまいちわからずモヤっていますw
どなたか初学者にコメントなどでご教授ください。
あと完全に余談ですがMarkdownで編集するためにGithuberというpluginを入れたら生産性が爆上がりとなりました。新規インストールで検索してみて下さい。
コメント