system management
1753512 メンバー
5670 オンライン
108795 解決策
新規ポスト

ctime変更方法

 
Y_Ta
時折のコントリビューター

ctime変更方法

特定のファイルのctime(change time:ファイルやディレクトリのinodeが変更された時間)を指定した時間に変更するコマンドはないでしょうか。

ctimeはls -lcコマンドで確認することができます。
5件の返信5
T_Ai
時折のアドバイザー

ctime変更方法

touchコマンドで変更可能です。

"bastille"という名前のファイルの修正時刻およびアクセス時刻を 1989年7月14日の午前0時に設定します。

 touch -t 8907140000 bastille

こちらでよろしいでしょうか。
Y_Ta
時折のコントリビューター

ctime変更方法

ありがとうございます。

touchでctimeも更新されるんですね。

ある評価でatime、mtime、ctimeを個別に修正する必要があるのですが、touchで-aや-mを使ってatimeとmtimeは更新可能でも、ctimeのみを更新するオプションがないようなので、ご存知でしたらお願いします。
T_Ai
時折のアドバイザー

ctime変更方法

申し訳ないです。

ctimeのみを変更するというのは分かりませんでした。

面倒ですが、touchで全て変更後、atime、mtimeを元に戻すというのはどうでしょうか。
Y_Ta
時折のコントリビューター

ctime変更方法

touch bastille

というようにtouchコマンドは引数なしで実行するとctimeも更新されますが、

touch -t 8907140000 bastille

というように-tオプションをつけて変更すると

ctimeは変更されないようです。

ctimeを指定の時刻に変更する方法はないものでしょうか?
nt
貴重なコントリビューター

ctime変更方法

ctime を現在の時刻にはできますが、指定した時刻には簡単には変更

できないと思います。

atime, mtime は utime(2) で変更できますが、 ctime を変更する

user interface はありません。

> touch -t 8907140000 bastille

> というように-tオプションをつけて変更すると

> ctimeは変更されないようです。

これは変更されないのではなく、 touch を実行した時間に変更されています。

ctime を変更する方法は

- 直接 inode を書き換える

- fsdb を使う

くらいしか思いつきません。