2011-07-27 23 views
2

私はUnixのスクリプトの助けを借りていくつかのファイルを変更しています。私はファイルの変更時間を変更したくない。 touchコマンドを使用しましたが、使用しませんでした。他の方法はありますか?ファイルを変更した後にファイルの変更時刻を復元する方法はありますか?

ファイルの前回の変更時刻が必要です。出来ますか?

+0

変更する前に以前の変更時刻を保存しておく必要があります。ちょうど「タッチ」は現在の時刻に設定します。あなたは以下の答えで述べられているようなタイムスタンプでタッチを使う必要があります。 – jman

+2

-1。あなたの質問の見出しによれば、ファイルの変更時刻を変更する必要があると言われています。あなたの記述には、修正時間を同じにしておきたいという声があります。 – Vijay

答えて

2

タッチが行く方法です。あなたの構文は正しいですか?

[01:35:42 [email protected]~]# touch -t 201107262235.34 foo 
[01:35:49 [email protected]~]# stat foo 
    File: `foo' 
    Size: 0    Blocks: 0   IO Block: 4096 regular empty file 
Device: ca20h/51744d Inode: 642445  Links: 1 
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) 
Access: 2011-07-26 22:35:34.000000000 -0400 
Modify: 2011-07-26 22:35:34.000000000 -0400 
Change: 2011-07-27 01:35:49.000000000 -0400 
[01:35:50 [email protected]~]# 
0

キャプチャファイル変更する前に、更新時刻:

touch -t "$oldFileTime" theFileThatIsBeingChanged 
0

バックアップ:

# savedate=$(stat -c %Y filename.ext) 

oldFileTime=`find theFileThatIsBeingChanged -maxdepth 0 -printf "%Ty%Tm%Td%TH%TM.%.2TS"` 

があなたの変更を行い、その後、時間をリセットするためにタッチを使用

復元:

# touch -d @${savedate} filename.ext 
関連する問題