特定ディレクトリ内の総てのファイルのタイムスタンプを任意の時刻に変更したいのですが,どうすればよいでしょうか?
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(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ですか.ありがとうございます.
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で読めます。
ありがとうございます.
touchを使います。man touchするとこんな感じです。
名称
touch - ファイルのアクセス時刻と変更時刻を変える
書式
touch [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
解説
touch は、 file で指定したファイルのアクセス時刻と変更時刻を、現在の時刻
に変えるものです。ファイルが存在しなかった場合は、デフォルトのファイルの
パーミッションで、サイズ 0 のファイルが作成されます。
ありがとうございます.
findコマンドで対象とするファイルを列挙し、touchコマンドを適用するのが定石です。
例えば、カレントディレクトリ以下のすべてのファイルの、アクセス時刻と修正時刻を2006年1月1日の12:00に変更するには、コマンドラインから
% find . -exec touch -t 200601011200 \{\} \;
または
% find . -print | xargs -t 200601011200
と実行します。
findコマンドのその他のオプションなど、詳細はmanページを参照してみてください。
ありがとうございます.
touchですか.ありがとうございます.