質問: ファイルのタイムスタンプ、変更時刻、作成時刻 私はそれを知っていますls -tおよびls -fディレクトリの下のファイルとサブディレクトリの異なる並べ替えを提供します。 ファイルのタイムスタンプ、変更時刻、作成時刻の違いは何ですか? これらの種類の情報をコマンドで取得して変更するにはどうすればよいですか? どのような情報に関して、ファイルは他のファイルより「新しい」と言われますか? どのような種類の情報を変更しても、ファイルは変わりませんか? たとえば、誰かが書いたのを見ました: デフォルトでは、rsyncプログラムはファイルのサイズとタイムスタンプが異なるかどうかのみを調べます。どのファイルが新しいかは関係ありません。異なる場合、上書きされます。 '--update'フラグをrsyncに渡すと、ソース上のファイルよりも新しいファイルが同じタイプのファイルである場合に限り、宛先上のファイルがスキップされます。これは、たとえば、ソースファイルが通常のファイルで、宛先がシンボリックリンクの場合、タイムスタンプに関係なく宛先ファイルが上書きされることを意味します。 余談ですが、ここでのファイルタイプは通常のファイルとsimlinkのみを意味し、pdf、jpg、htm、txtなどのタイプを意味しませんか?
回答: 「タイムスタンプ」には3種類あります。 アクセス-ファイルが最後に読み取られた時間 変更-ファイルが最後に変更された時刻(内容が変更されています) 変更-ファイルのメタデータが最後に変更された時間(例:権限) この情報を表示するには、coreutilsの一部である stat を使用できます。statには、デバイス、iノード、リンクなどの詳細情報も表示されます。この種の情報は、ファイルシステムとマウントオプションに大きく依存することに注意してください。たとえば、noatimeオプションを使用してパーティションをマウントした場合、アクセス情報は書き込まれません。タイムスタンプを変更するユーティリティはtouchです。どのタイムスタンプを変更するかを決定するためのいくつかの引数があります(たとえば、-aはアクセス時間、-mは変更時間)、指定された新しいタイムスタンプの解析に影響を与えます。詳細は man touch を参照してください。touchは、cp -u()と組み合わせて使用すると便利です。「コピー元のファイルがコピー先のファイルよりも新しい場合、またはコピー先のファイルが見つからない場合のみ」)または空のマーカーファイルの作成用。