助け合いフォーラム
LinuC Lv1-101(Ver10.0)
問題ID : 14504
問題を開く
「file.txt」ファイルのアクセス時刻のみを2012年1月1日11:22:33に変更したい。適切なコマンドは次のうちどれか。
正解
touch -at 201201011122.33 file.txt
解説
touchコマンドは、空のファイルを作成したり、ファイルのタイムスタンプ(アクセス時刻や修正時刻)を変更する際に利用します。
touchコマンドの書式と主なオプションは以下のとおりです。
touch [オプション] ファイル名 [ファイル名・・・]
上表より、適切なオプションは「-t」と「-a」です。
時刻は「CCYYMMDDhhmm.ss」形式で指定します。CCとYYは西暦年の上2桁と下2桁、MM、DD、hh、mm、ssはそれぞれ月、日、時、分、秒を表します。
したがって正解は
・touch -at 201201011122.33 file.txt
です。
タイムスタンプはファイルの詳細情報を表示するstatコマンドなどで確認できます。
以下は実行例です。
「Access」行でアクセス時刻、「Modify」行で修正時刻を確認できます。なお「Change」行はファイルの修正および属性(パーミッション等)を変更した時刻です。
なお、指定したファイルが存在しない場合は、空のファイルが作成されます。テスト用の空ファイルなどを簡単に作成できるので便利です。
また「-t」オプションで時刻を指定しない場合は、現在時刻が適用されます。
その他の選択肢については以下のとおりです。
・touch -t 201201011122.33 file.txt
アクセス時刻と修正時刻の両方が変更されますので、誤りです。
・touch -a 201201011122.33 file.txt
「201201011122.33」というファイルが存在しない場合は新規作成されます。また、「file.txt」ファイルのアクセス時刻が現在の時刻に変更されますので、誤りです。
・touch -m 201201011122.33 file.txt
修正時刻を変更するオプションですので、誤りです。
この場合、「201201011122.33」というファイルが存在しない場合は新規作成されます。また、「file.txt」ファイルの修正時刻が現在の時刻に変更されます
・touch -mt 201201011122.33 file.txt
修正時刻を変更するオプションですので、誤りです。
touchコマンドの書式と主なオプションは以下のとおりです。
touch [オプション] ファイル名 [ファイル名・・・]
上表より、適切なオプションは「-t」と「-a」です。
時刻は「CCYYMMDDhhmm.ss」形式で指定します。CCとYYは西暦年の上2桁と下2桁、MM、DD、hh、mm、ssはそれぞれ月、日、時、分、秒を表します。
したがって正解は
・touch -at 201201011122.33 file.txt
です。
タイムスタンプはファイルの詳細情報を表示するstatコマンドなどで確認できます。
以下は実行例です。
「Access」行でアクセス時刻、「Modify」行で修正時刻を確認できます。なお「Change」行はファイルの修正および属性(パーミッション等)を変更した時刻です。
なお、指定したファイルが存在しない場合は、空のファイルが作成されます。テスト用の空ファイルなどを簡単に作成できるので便利です。
また「-t」オプションで時刻を指定しない場合は、現在時刻が適用されます。
その他の選択肢については以下のとおりです。
・touch -t 201201011122.33 file.txt
アクセス時刻と修正時刻の両方が変更されますので、誤りです。
・touch -a 201201011122.33 file.txt
「201201011122.33」というファイルが存在しない場合は新規作成されます。また、「file.txt」ファイルのアクセス時刻が現在の時刻に変更されますので、誤りです。
・touch -m 201201011122.33 file.txt
修正時刻を変更するオプションですので、誤りです。
この場合、「201201011122.33」というファイルが存在しない場合は新規作成されます。また、「file.txt」ファイルの修正時刻が現在の時刻に変更されます
・touch -mt 201201011122.33 file.txt
修正時刻を変更するオプションですので、誤りです。
アクセス時刻のみ変更
r
ruttey
投稿日 2022/08/10
touchコマンドのオプションで、アクセス時刻のみを変更したい場合はーaオプション、と解説にも書いてあるのに、正解がーatなのは何故ですか?
2022/08/11 00:20
touchの動作は次のような感じになってます。
オプション無しで実行すると、アクセス時刻と修正時刻の「両方」が「現在時刻」になります。
-aをつけると、アクセス時刻だけが「現在時刻」になります。
-mをつけると、修正時刻だけが「現在時刻」になります。
-tをつけると、アクセス時刻と修正時刻が「指定した時間」になります。
-atをつけると、アクセス時刻だけが「指定した時間」になります。
-mtをつけると、修正時刻だけが「指定した時間」になります。
次のように私は考えています。
基本の動作は、アクセス時刻と修正時刻の「両方」を「現在時刻」にすること。
-tを使うと、「現在時刻」ではなく「指定した時間」になる。
-aや-mを使うと、アクセス時刻だけ、修正時刻だけ、にできる。
-tと-a(-m)を合わせて使うと、アクセス時刻(修正時刻)だけを「指定した時間」にできる。
正解がーatなのは何故ですか?
「現在時刻」ではなく「指定した時刻」にしなくてはいけない→ -t
アクセス時刻”のみ”変更しなくてはいけない→ -a
これら2つのオプションを同時に使用して-atとなってますよ。
コメント
この投稿に対して返信しませんか?
r ruttey
2022/08/11 12:49
理解できました。ありがとうございます。