touch

touch コマンドはファイルを新しく作成するときによく使われるコマンドだが、ファイルの日付を変更できるという機能がある通常はファイルが作られた時はその端末システムがもっている日付情報があてられるファイルの日付情報を任意で設定したい場合というのはとても特殊な状況だと思う。

そもそもファイルの日付情報を変更してもいいものだろうか、ファイルの日付情報をたよりになにかしらの挙動をしているアプリケーションは沢山あると思う。もしファイルの日付情報を任意に設定しようとするときはどんな影響が考えられるが慎重に考えをめぐらせた方が良いと思う。

共通

touch が使える状態か確認

which touch

バージョン確認

touch --version

注意したいのは Mac と Linux(Ubuntu) とではオプションの付け方が若干ことなる。ここでは両方でうごくようなオプションの書き方を紹介

ファイル構造について

下記のようなファイル構造が存在した場合

tree ~/tmp/touchtest
/Users/yk/tmp/touchtest
└── hello.txt

0 directories, 1 file

サンプルの再現

下記のコマンドをつかうと上記のようなファイル構造がつくれますよ。

mkdir -p ~/tmp/touchtest && \
cd ~/tmp/touchtest && \
touch hello.txt

下記のディレクトリに移動している過程で

cd ~/tmp/touchtest

ファイルの新規作成

thanks.txt ファイルを新規作成したい

touch thanks.txt

ファイル作成時に日付を設定

good.txt ファイルに日付情報 (2021-10-27 17:35:38) を指定して作成

touch -d '2021-10-27 16:35:38' good.txt

確認

ファイルの日付情報を確認したい (私の端末ではこうなった)

ls -al
total 0
drwxr-xr-x   5 yk  staff  160 10 27 17:37 .
drwxr-xr-x  24 yk  staff  768 10 27 17:32 ..
-rw-r--r--   1 yk  staff    0 10 27 16:35 good.txt
-rw-r--r--   1 yk  staff    0 10 27 17:32 hello.txt
-rw-r--r--   1 yk  staff    0 10 27 17:37 thanks.txt