touchコマンドってファイル作成コマンドと思い込んでいました

こんにちは、AWSが面白いので基礎となるLinuxを学び直しているねこだくさんです。

今回はファイルを作成するときになんとなく使っているtouchコマンドについて学びます。
コマンド操作についてはいつもの通りEnvaderで実行しています。

猫たちはいつもの通りそのへんで転がっています。

touchコマンドとは

ファイルを作成するコマンドとして使用してきましたが、本来はファイルのタイムスタンプを変更するためのコマンドです。

タイムスタンプとは?
ファイルの最終更新日のことです。

タイムスタンプ変更

touchコマンドの役割というのは理解しましたが、どのようなときに使用するのでしょうか?

結論から言うと有用な用途を説明しているサイトは見つけることができませんでした。
ファイルの最終更新日を改ざんするためのものとの説明もありましたが、それこそ意味がわかりません。

大体のサイトが操作を説明するにとどめているので、そういうものだと思うことにしました。

話を戻します。
例えば、test.fileというファイルの最終更新日を現在に変更するには

touch test.file

とコマンドを入力します。

ファイルの中身は変更せずにtouchコマンドを実行することで最終更新日が変更されます。
何らかの理由でファイルの中身を変更せずに最終更新日を変更するというのが用途の一つです。

なんのために?とは思いますがそういう機能があるということが大事なんだと思います。

touchコマンドのオプション

コマンドのオプションとして以下があります。

OptionDescription
-t[[CC]YY]MMDDhhmm[.ss]の書式に則り、タイムスタンプを指定した日時に更新します。
-d日時を文字列で指定して、タイムスタンプを更新します。
-c存在しないファイル名を指定しても、空の新規ファイルを作成しません。
-r指定した他のファイルのタイムスタンプに合わせて更新されます。
-mctimeのみを変更します。

引用:【touchコマンド】ファイル作成とタイムスタンプ

-cオプションなどは意味がわかりませんでしたが、最終更新日変更する際にファイル名指定間違いをした場合に余計なファイルを作成することを防ぐ用途なんだと思います。

ファイルの作成

こちらは使い慣れていると思います。
以下のコマンドでファイルを作成することができます。

touch ファイル名

新規ファイルが作成されます。
はいそこEditorで作成するから使わないとか言わない。

学んだこと

touchコマンドの操作方法やオプションを学びました。
学びましたが、ファイル作成はともかく最終更新日をいじる意味は偽装以外になにかあるのかいまいちわからずモヤっていますw

どなたか初学者にコメントなどでご教授ください。

あと完全に余談ですがMarkdownで編集するためにGithuberというpluginを入れたら生産性が爆上がりとなりました。新規インストールで検索してみて下さい。

WP Githuber MD – WordPress マークダウンエディタ
An all-in-on WordPress Markdown Plugin provides a variety of features such as Markdown editor, live-preview, image-paste, HTML-to-Markdown helper, and …

参考資料

touchコマンドについて詳しくまとめました 【Linuxコマンド集】
touchはファイルのタイムスタンプを変更するコマンドだ。また、存在しないファイル名を指定することで、内容の入っていないファイルを新規作成する機能も持っている。
ファイルのタイムスタンプを改竄する方法
Linuxでファイルの作成日時や更新日時(タイムスタンプ)を改竄する方法に関するまとめです。EXT3、EXT4…
コース一覧 | エンベーダー
コース一覧に関するページです。Linuxを学べるLinux基礎・応用コースを始めとして、エンジニア必須の知識であるデータベースやセキュリティのコースもあります。

前回学んだLinux基礎

Linuxのsudoコマンドとルート権限をEnvaderで学んだ
チーム開発の真似事を初めて改めてLinuxの知識の必要性を実感した猫だくさんです。コマンドをなんとなーく使っているのでその意味をしっかりと理解していきたいと思います。今回はとりあえず動かなかったらsudoすればええんやろって勢...

コメント