Top / UNIX / ファイル操作


touch -- ファイルのタイムスタンプを変更する --

ブログ用ファイルを某大家さんマシン(FreeBSD:euc)と自マシン(Debian:utf8)で保存しておくため、漢字コード変換が必須となります。nkfを使ってutf8←→euc変換するのですが、新しいファイルとして生成されるため、どうしてもタイムスタンプがずれてしまう。 (日にちさえ同じであれば、数字間程度のずれは気にしないのですが、何日分かためこんでから変換するものですから、日にちが完全にずれてしまいます) 自マシンでは FD clone を使って attribute 変更しています。 大家さんマシンでは FD clone は未インストールなので、touchコマンドを使いましょう。

touch -t [[CC]YY]]MMDDhhmm[.SS] file名

utf-8→eucへの変換例

% ls -l
total 172
-rw-r--r--  1 himico  himico  175646 May 10  2004 4232
% nkf -e 4232 > 4232.euc
% ls -l
total 344
-rw-r--r--  1 himico  himico  175646 May 10  2004 4232
-rw-r--r--  1 himico  himico  175522 Aug  6 14:48 4232.euc
% touch -t 200405100000 4232.euc 
% ls -l
total 344
-rw-r--r--  1 himico  himico  175646 May 10  2004 4232
-rw-r--r--  1 himico  himico  175522 May 10  2004 4232.euc

おまけ:Debian の場合、lsコマンドでファイルの時刻をfull time で表示できます。

% ls -l --full-time test.f
-rw-r--r-- 1 himico himico 2082 1999-12-06 12:15:55.000000000 +0900 test.f

FreeBSD はどうすればよいのか… わかりません。

トップ 一覧 検索 最終更新 バックアップ  ヘルプ  RSSR