Lionでファイルの作成日を変更する方法を教えてください。touch-tコマンドがありますが、Lionでは機能しません。何人かの人々は別の方法で言及しましたが、私は彼らが素人の言語ではなく「コーダー」言語でソリューションを書いたと思います-素人が実行できる方法で誰かがそれに答えることができるでしょうか?
助けてくれて本当にありがとうございます。
Lionでファイルの作成日を変更する方法を教えてください。touch-tコマンドがありますが、Lionでは機能しません。何人かの人々は別の方法で言及しましたが、私は彼らが素人の言語ではなく「コーダー」言語でソリューションを書いたと思います-素人が実行できる方法で誰かがそれに答えることができるでしょうか?
助けてくれて本当にありがとうございます。
回答:
touch -t
通常、変更とアクセス時間のみを変更します。ターゲット時間が元の作成時間より前の場合にのみ、作成時間を変更します。
touch -t 199912312359 file.txt
touch -t $(date -jf %FT%T 1999-12-31T23:59:59 +%Y%m%d%H%M%S) file.txt
SetFile -d
常に作成時間を変更します。
SetFile -d '12/31/1999 23:59:59' file.txt
SetFile -d "$(GetFileInfo -m test.txt)" file.txt
SetFileはコマンドラインツールパッケージの一部であり、developer.apple.com / downloads またはXcodeの設定からダウンロードできます。
+%Y%m%d%H%M.%S
(分と秒の間のドットに注意してください)
Mac OS Xでは、ファイルに関連付けられた4つの異なるタイムスタンプがあるようです。これらのタイムスタンプは、常に互いに独立して更新されるわけではありませんが、少し注意して、、、および(または)を使用するとtouch
、個別に制御できます。これを確認するには、コマンドプロンプトから新しいファイルを試して作成してみましょう。SetFile
chown
chmod
#
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
リストされた最初の日付は最終アクセス時刻(atime
)、2番目は最終変更時刻(mtime
)、3番目は最終ステータス変更(ctime
)、4番目はファイル作成時刻(生年月日、Btime
)を参照してくださいman lstat
。
アクセス時間(atime
)を指定した時間に変更するには、次を使用します。
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
変更時刻(mtime
)およびファイル作成時刻(Btime
)を指定した時刻に変更するには、次を使用します。
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
どうやらこれはまた、最後のステータス変更の時刻(ctime
)を現在のシステム時刻に自動的に更新します!
作成/誕生の時間(Btime
)のみを特定の時間に変更するには、以下を使用します(上記の他の提案)。
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
最後のステータス変更の時刻(ctime
)のみを現在のシステム時刻に変更するには、たとえば次を使用します。
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
ここで、username
(によって報告されたファイルの所有者ですstat
か、ls -l
)。これはファイルの所有権を変更しませんが、ファイルのiノードにアクセスし、これを最後のステータス変更の時刻として記録します。残念ながら、コンピューターの時間を変更する以外に、ここで時間を明示的に指定することはできません...
要約すると、4つのタイムスタンプを個別に変更できるようにするには、次のように使用できます(最後の3つの順序で):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[通常のシステムの日付に戻す](もちろん、システムの日付をリセットすることはリスクのない操作ではないかもしれないと警告されています。)
コマンドラインtouch
コマンドはLionで動作しますが、使用方法について少し知識が必要です。
まず、入力する必要があります。ウィンドウ内でグラフィカルに動作するユーティリティではありません。入力する場所は、ターミナルと呼ばれるアプリです。これは、ユーティリティフォルダーで見つけるか、Spotlight検索を使用して見つけることができます。
起動すると、コマンドを入力できるコマンドラインウィンドウが表示されます。入力しているからといって、それがコーディングに関係しているという意味ではありませんが、「昔ながらの」OSコマンドを初めて使用する人にとっては、少し威圧的に見えるかもしれません。
そのため、このコマンドはtouchと呼ばれ、コマンドの後にさまざまなパラメーターを渡すことができます。唯一の必須パラメーターはファイル名です。次を入力すると、ファイルの最終変更日が現在の時刻に設定されます。
touch filename
もちろん、最初にファイルを見つける必要がある場合がありますが、そのためにはさらにコマンドが必要になる場合があります。CDやディレクトリの変更コマンドはここに役立ちます:
cd ~/Desktop/files/PDFs
touch filename
または、コマンドの一部としてファイルへのフルパスを追加するだけです。
touch ~/Desktop/files/PDFs/filename
touchコマンドのより高度な使用法では、実行時を使用するのではなく、設定する時間を指定したり、変更時間ではなくアクセスを設定したりできます。これが-tなどのパラメーターの機能です。時間を別のファイルの時間に設定したり、X量だけ時間をさかのぼったり、時間を早めたりするように設定する人もいます(詳細についてはこちらをご覧ください)。
touch -d '1 May 2005 10:22' file8
以下はこのページからの参考資料であり、コマンドラインでのファイルの場所が気に入らない人向けのヒントを含む素晴らしい例です。
入力した日付より後にファイルが作成された場合にのみ、これにより変更日属性と作成日属性の両方が変更されることに注意してください。これは、ファイルが作成される前に変更できないためです。設定した日付より前に作成された場合、変更された日付のみが変更されます。
ファイルの作成日属性を変更する方法は?
ターミナルアプリケーション(
/Applications/Utilities/Terminal.app
)を開くか、iTermを使用する場合。これをターミナルに入力し(Enter / Returnを押すことなく)、次の形式で日付を挿入します
YYYYMMDDhhmm
。touch -t 201212211111
Finderウィンドウを開き、変更するファイルを見つけて、ターミナルウィンドウにドラッグアンドドロップすると、コマンドラインの用語を使用してファイルの場所が挿入されます。この時点でターミナルに入力する必要があるものの例を次に示します。
touch -t 201212211111 /Volumes/Mac\ HD/Pictures/somefile.jpg
上記の例の201212211111は、「2012年12月21日午前11時11分」を表します。
touch
、ファイルの作成日ではなく、変更日を変更します。
touch
上記で指定したパラメーターを使用して変更を変更しましたが、テストファイルの作成日は変更しませんでした。
touch
した引数に応じて、作成日を変更します。ファイルの作成日より前の修正日を指定すると、ファイルは作成前に修正できないため、作成日は自動的に新しい修正日値に変更されます。
creation
日付は変更されません。「過去の日付」に変更access
してmodified
日付を変更できましたが、作成日は変更されませんでした。マニュアルページでタッチを確認してください。作成日については触れていません。ファイルシステム:Mac OS拡張(ジャーナリング、暗号化)。使用SetFile -d "$(GetFileInfo -m test.txt)" file.txt
は完全に機能しました。
ここでの偉大なヒント、特に最後のヒント(Lauri Rantaから、8月21日15:21に回答)。パーフェクト!
単純なAutomatorワークフローを使用して、複数のファイルを一括変更します。
シェルスクリプトは次のとおりです。
for f in "$@"
do
SetFile -d "$(GetFileInfo -m "$f")" "$f"
done
これは魅力のように機能します。