スポンサーリンク

touchコマンドでファイルの時刻情報・タイムスタンプを再帰的に変更する

※MACターミナル(BSD系)での動作確認です。

例えば、下記の形式でタイムスタンプを再帰的に変更できます。
findとxargsとtouchコマンドを組み合わせます。

$ find . -type f | xargs -I{} touch -t 202004051256.24 {}

例えば、下記のようにディレクトリとファイルを作成します。

$ touch sample1.txt
$ mkdir dir
$ cd dir/
$ touch sample2.txt
$ cd ..

再帰的にdateコマンドを適用して、ファイルのタイムスタンプを表示させてみます。
参考:[c言語]findとxargsで再帰的にrm/cpする

$ find . -type f | xargs -I{} date -r {}
2021年 10月23日 土曜日 08時40分51秒 JST
2021年 10月23日 土曜日 08時40分15秒 JST

再帰的に、ファイルのタイムスタンプを、”2020年 4月 5日 日曜日 12時56分24秒”に変更します。

$ find . -type f | xargs -I{} touch -t 202004051256.24 {}

カレントディレクトリ以下のファイルのタイムスタンプが変更されているのが確認できます。

$ find . -type f | xargs -I{} date -r {}
2020年 4月 5日 日曜日 12時56分24秒 JST
2020年 4月 5日 日曜日 12時56分24秒 JST

スポンサーリンク

動画で解説

一連の流れを動画にしてみました。
コマンドの書き方や実行結果の動きが確認できます。
よければご参考にして頂けると幸いです。

スポンサーリンク