
一部のファイルのすべてのタイムスタンプを現在の日付に変更したいと思います。使用する必要がありますがtouch -A *
(やや、より複雑なワイルドカード形式を使用することになります)、次のパラメータが必要です。[-][[hh]mm]SS
上記の形式でこれを行うための引数date
として正しい形式の出力を提供するように呼び出しを誘導するにはどうすればよいですか?touch
touch
答え1
ファイルのctimeの変更について心配しないことを提案します。実際に問題を引き起こす価値はありません(1〜2ヶ月前に単純なMP3プレーヤー用のファイルを構成するスクリプトを書くときに見つけたように)。そしてで議論された方法だから質問は上記にリンクした別の簡単な方法があります。ファイルを一時名にコピーし、元のファイルを削除してから一時ファイルの名前を変更します。もちろん、大量のファイルを処理しようとすると、ディスクにはかなりの費用がかかります。
~によるとマンページをタッチ-A
上記のdon_crisstiによって提供されたバージョンでは、このオプションの目的touch
は以下を適用できるようにすることです。時間の増加ファイルの現在のmtimeおよび/またはatime。したがって、この-A
オプションを使用してファイルのatimeとmtimeを設定することは、ファイルの既存のatimeとmtimeの間の時間差をnow
計算する必要があることを意味しますnow
。これは私がコメントで述べたように不必要な複雑さです。
ファイルセットの mtime と atime を現在時刻に設定する最も簡単な方法は、デフォルトのオプションと一緒に touch を使用することです。またはファイルをすべて持っている場合まったく同じ時には、ファイルを最初にタッチしてから、タッチオプションを使用して残りのファイルの参照ファイルとして使用することもできます-r
。
答え2
あなたはそれを使用することができますコマンドの置き換えそのために
$ touch -t $(date +%m%d%H%M) file
答え3
touch
macOSのユーティリティには、-A
次のことができるオプションがあります。調整時間、分、および/または秒単位のファイルセットの変更およびアクセスタイムスタンプ(それぞれ「mtime」および「atime」)。 コメントから、あなたが欲しいと思います置くタイムスタンプは現在の時間であり、調整されません。したがって、この-A
オプションは無効な選択です。
ファイルセットのmtimeおよびatimeタイムスタンプを現在の時刻に変更するには、次のようにします。
touch -c pattern
pattern
アクセスしたいファイルと一致するパターンがあります。この-c
オプションを使用すると、パターンが一致しないか、存在しない名前を含む明示的なファイルのリストを提供しても、ファイルは生成されません。
mtime および atime タイムスタンプ修正の副作用として ctime タイムスタンプ ("inode 変更タイムスタンプ") も修正されます。
set btime("birthtimestamp" ここで可能「生成タイムスタンプ」と呼ぶのです。ご意見にSetFile
)、macOSで「ファイルとディレクトリのプロパティ設定」に(使用されていない)コマンドを使用する必要があるかもしれません。
SetFile -d "$(date +'%m/%d/%Y %H:%M:%S')" pattern
SetFile
同じ日付スタンプ文字列と-m
mtimeを更新するオプションを使用してください。このようにbtimeまたはmtimeを設定すると、ファイルのctimeも更新されます。ユーティリティSetFile
はタイムタイムスタンプを更新しないか、更新できません。