「タッチする」とはどういう意味ですか?

「タッチする」とはどういう意味ですか?

私の質問は、コンピュータサイエンスに関する質問ではなく、語源に関する質問です。

このコマンドはtouchファイルアクセスと変更時間を変更します。

「タッチする」とはどういう意味ですか?

答え1

しかし、実際にはそうではありません。代表する略語や頭字語ではありません。これは動詞です。

ファイルを作成すると、touch「ファイルに新しいフィンガープリントを追加」し、最後の変更日を更新します(まだ存在しない場合は作成します)。

答え2

DopeGhotiが言ったように、タイムスタンプを現在の時刻に更新することは、英語の単語の意味と非常に一致しています。人々が一般的にメモリ内のデータを「接触」するとは、そのデータにアクセスすることを意味します(たとえば、「この機能は2GBのデータに接触してCPUキャッシュを破損させました」)。このtouch(1)コマンドはメタデータに影響を与え、他の効果はない方法でファイルをタッチするために存在します。

また、時刻/日付メタデータを現在の時刻以外のものに設定するオプションもあります。この場合、セマンティックな意味はもはや実際には適用されません。 (たとえば、touch -r reference_file /tmp/foomtimeとatimeを参照と同じに設定します。)


やや関連:

質問がある場合、GNU coreutilstouch(1)実装は次のシステムコールシーケンスを使用してタイムスタンプを現在の時刻に更新します。

$ strace touch /tmp/foo
...
open("/tmp/foo", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0)                              = 0
close(3)                                = 0

openwithは、O_CREAT欠落している場合に生成アクションを実装します。省略すると、O_TRUNC既存のコンテンツはそのまま保存されます>> /tmp/foodup23 つの mtime、atime、ctime をすべて現在時刻に更新します。 (open()/のみclose()タイムスタンプには影響しません)。

時間を「今」以外の時間に設定するには、同じ順序を実行してから次のようにします。utimensat(0, NULL, ...)stdoutが参照するファイルの時間を設定します(ファイルのfdをfd0にコピーするため)。

関連情報