今回も前回に続きUNIX系OSのfindコマンドを使ってテキストファイルを検索しますが、より細かく条件を指定して検索してみます。今回もいつものようにサンプルファイルはデスクトップのsampleディレクトリに入れておきます。また、カレントディレクトリをこのsampleディレクトリとします。コマンドならcd ~/Desktop/sampleです。
find検索その前に
以後の説明でfindコマンドで日付や時間を指定して検索しますが、実際にやってみようとすると困ってしまう人もいるかもしれません。例えば一週間前に変更されたファイルを検索するような場合、そんなに都合よく一週間前のファイルが存在するとは限りません。
何でもご都合主義で進めてしまうのもありですが、それだと実際にコマンドを入力して確認することが難しくなってしまいます。そこで、まずは日付を変更するコマンドを使ってみましょう。と言っても、これまで何回か出てきたtouchコマンドを使うだけです。
touchコマンドの後に日付(最終更新日)を変更したいファイル名(ファイルパス)を指定します。実行するとtouchコマンドを実行した時点での最終更新日に変更されます。
ls -laとした場合、macOSではより詳細な更新日は表示されません。この場合はTオプションを指定します。
実際には指定したファイルを最終更新日にしたい事は少ないでしょう。指定した日時に変更する場合はtオプションを指定し、その直後に年月日を指定します。形式はMMDDhhmm、YYMMDDhhmm、YYYYMMDDhhmm、YYYYMMDDhhmm.SSなどで指定します。
YY:西暦下2桁
YYYY:西暦4桁
MM:月
DD:日にち
hh:2桁の時間(24時間制)
mm:2桁の分
SS:2桁の秒
ちなみに日付指定を間違えると以下のようなメッセージが表示されます。
touch: out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]
カレントディレクトリにあるsample.txtの最終更新日を2020年11月3日23時59分にするには以下のように指定します。
touch -t 202011032359 sample.txt
ちなみにまとめてファイルの最終更新日を変更することもできます。以下のようにするとカレントディレクトリにある拡張子がtxtのファイルの最終更新日がtouchコマンドを実行した時点の日付になります。
touch *.txt