wiki:dokuwiki:cs:touchコマンドを作ってみるよ

touchコマンド(もどき)を作ってみるよ

ろくにテストしてないけど、作った物はこれ。
addcommand.zip

touch /?
Description:
  Developed by https://it01.hooray-eri.com/
 
Usage:
  touch <fileName> [options]
 
Arguments:
  <fileName>  ファイル名を指定する。
 
Options:
  -c, --create        ファイルが存在しない場合に、ファイルを生成しない。未指定はファイルを生成する。
  -D, --diretory      ディレクトリのタイムスタンプも更新する。
  -d, -t <d>          ファイルの日付や時刻を指定の日付や時刻に設定する。
                      対応するフォーマットは次の通り
                      ・月月/日日[/[年年]]
                      ・月月-日日[-[年年]]
                      ・時時:分分[:[秒秒]]
                      ・月月日日時時分分[年年]
                      ※年年は1980~2079の下二桁を示す。
  -dex, -tex <dex>    ファイルの日付や時刻を指定の日付や時刻に設定する。(年4桁)
                      対応するフォーマットは次の通り
                      ・月月/日日[/[年年年年]]
                      ・月月-日日[-[年年年年]]
                      ・時時:分分[:[秒秒]]
                      ・月月日日時時分分[年年年年]
  -n                  ファイルの一覧を表示する。ファイル日日付時刻は変更しない。
  -r <r>              このオプションで指定したファイルと同じ日付時刻に更新する。
  -s                  サブディレクトリ内も再帰的に処理する。
  -v                  TOUCH の処理を実行した各ファイルを表示する。
  -w                  ファイルが見つからなかった場合や日時の値が無効な場合には警告する。
  -a, -f, -m, --UNIX  UNIX互換用。機能は特になし。
  --eos               Eligi mesa?ojn en Esperanto.
  --version           Show version information
  -?, -h, --help      Show help and usage information
 
 
 
ファイル名を指定してください。

注意 touchコマンド本家の仕様を知っているわけではありません。ただ、世界的大企業殿のページに詳しく書いてあったので、それを参考に、「たぶんこうだろう」という推測も含めて実装しています。
実行例その1 フォルダ内のファイルの更新日付を2023/04/01にする場合

touch -dex 04010000102023 *

実行例その2 0バイトファイルを作成する場合

touch sample.txt


というわけで、以下では、絶対に個人的推測が入っている機能について説明します。

–eos オプションを指定すると、エラーメッセージがエスペラント語(goolge翻訳 2024年現在)で表示されます。

デフォルトでは年を2桁で指定した場合、

年の最後の 2 桁(1980 年から 2079 年までを表す)

となっています。
互換性維持のため、-d -tオプションはそのままに、新しく-dex -texオプションを作成しました。 この新しいオプションでは、年を4桁で指定することができます。

-wオプションの説明では、

ファイルが見つからなかった場合や日時の値が無効な場合には警告します。 デフォルトでは、警告します。

となっており、(自動翻訳の弊害なのかどうか知りませんが)、-wオプションがあろうがなかろうが警告するとなっています。
LINUXの場合、オプションを無効にするスイッチかなんかあるってことなのかな・・?と妄想膨らませていましたが、考えるのも 面倒になったので、-wオプションは指定してもエラーにはなりませんが、何も起きません。

この記事を書いているときに-vオプションの存在に気がついたので、指定しても何も起きません。

  • wiki/dokuwiki/cs/touchコマンドを作ってみるよ.txt
  • 最終更新: 2024/05/20 03:20
  • by hoorayeri