Lionでファイルの作成(st_birthtime)日時を変更する方法は?[重複]


10

touch(1)のみ変更することができます修正し、アクセス時間を、しかしにはオプションがありません作成時間を。これは、少なくともLionでは機能しません。

だから、どのように私は変化しないの作成時間を、とも呼ばbirthtimefstat(2)?対応する呼び出しutimes(2)はなく、このためのコマンドラインツールはないようです。

ファイルを新しいファイルにコピーして、現在の時刻を出生時刻として取得する(そして元のファイルを削除する)ことができることはわかっていますが、もっと良い方法があるはずです。


1
touch -t yyyymmddhhmm $file作成日を変更するように見えますが、元の作成日より前の場合のみです。
Lri

良い点、@ Lri-mtimeとatimeが更新され、ファイルが作成される前にファイルにアクセスまたは変更できなかったため、これは実際に意味があります。しかし、新しい作成時間を設定することはできません。
Ingmar Hupp 2012

コマンドラインを使用して変更することを参照していますか、それともCLIで必ずしも変更する必要はありませんか?
daviesgeek

率直に言って、あなたがそれを変更できないことを望みます、確かにそれはフィールドの全体のポイントを倒すでしょう?!また、問題のいくつかは、出生時間/作成時間が標準のファイルシステム機能ではないことだと思います。hfsはそれを拡張属性に追加したと思います-ですから、ユーティリティがそれを認識するように更新されていなければ、彼らはそれで多くを行うことができません。
セシウム

回答:


6

touch -t また、ターゲット変更時刻が元の作成時刻より前の場合は、作成時刻も変更します。

SetFileは、作成時刻を変更時刻より前または未来に設定できます。

-d date    Sets the creation date, where date is a string of the
           form: "mm/dd/[yy]yy [hh:mm:[:ss] [AM | PM]]" Notes:
           Enclose the string in quotation marks if it contains spa-
           ces. The date must be in the Unix epoch, that is, between
           1/1/1970 and 1/18/2038. If the year is provided as a two-
           digit year, it is assumed to be in the 21st century and
           must be from 00 (2000) through 38 (2038).

これにより、作成時刻が変更時刻に設定されます。

SetFile -d "$(GetFileInfo -m test.txt)" test.txt

SetFileとGetFileInfoは、Xcodeの設定またはdeveloper.apple.com/downloadsからダウンロードできるコマンドラインツールパッケージの一部です。


厳密に言えば、「誕生時間」(crtime)とctime は異なるものです(ZFSでのファイル作成時間
G. Cito、

もちろん、アクセスと変更の時間は同じですが、理由は異なります。 マニュアルページは詳細を持っています。OSX向けのOpenZFSとOSXの「ネイティブ」ファイルシステムがフィールドを処理する方法、またはOSXのさまざまなバージョンで何がレポートされるかを知りたいです。touchstatcrtimestatcrtime
G. Cito

-1

試してください:

cat filename > newfile
mv filename ~/.Trash/
mv newfile filename 

うまくいくはずです。


1
オリジナルを削除する必要があります。イングマールはすでにこれをカバーしていた。
カバ

おっと、もっとよく読めばいいのに。しかし、いいえ、より良い方法はありません...
Sean Freitag 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.