人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

FreeBSDを使っています.
特定ディレクトリ内の総てのファイルのタイムスタンプを任意の時刻に変更したいのですが,どうすればよいでしょうか?

●質問者: Ficus_palmeri
●カテゴリ:コンピュータ
✍キーワード:FreeBSD タイムスタンプ ディレクトリ ファイル
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● iwaim
●23ポイント ベストアンサー

touch(1) でアクセス時刻、更新時刻を変更できます。

http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man...

$ touch -am -t 200001010000.00 *

ですかね。

サブディレクトリまでやるならば

$ find /path/to -type f | xargs touch -am -t 200001010000.00

と find(1)、xargs(1) を併用ですかね。

◎質問者からの返答

touchですか.ありがとうございます.


2 ● otsune
●23ポイント
find /path/to/dir -type f -print0 | xargs -0 touch -t 200603170625.30

でどうでしょうか? /path/to/dirは「特定ディレクトリ」で、-type fは「ファイル」です。touch -tの200603170625.30は「2006年03月17日06時25分30秒」を表します。

On-line Manual of "touch"でtouchの日本語マニュアルがWebで読めます。

◎質問者からの返答

ありがとうございます.


3 ● masahikokimoto
●22ポイント

touchを使います。man touchするとこんな感じです。

名称

touch - ファイルのアクセス時刻と変更時刻を変える

書式

touch [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...

解説

touch は、 file で指定したファイルのアクセス時刻と変更時刻を、現在の時刻

に変えるものです。ファイルが存在しなかった場合は、デフォルトのファイルの

パーミッションで、サイズ 0 のファイルが作成されます。

◎質問者からの返答

ありがとうございます.


4 ● birdie-brain
●22ポイント

findコマンドで対象とするファイルを列挙し、touchコマンドを適用するのが定石です。

例えば、カレントディレクトリ以下のすべてのファイルの、アクセス時刻と修正時刻を2006年1月1日の12:00に変更するには、コマンドラインから

% find . -exec touch -t 200601011200 \{\} \;

または

% find . -print | xargs -t 200601011200

と実行します。

findコマンドのその他のオプションなど、詳細はmanページを参照してみてください。

◎質問者からの返答

ありがとうございます.

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ