bashでファイルの更新日を取得したい

Bashスクリプトでファイルの更新日を取得するためには、statコマンドを使用するのが一般的です。statコマンドはファイルの詳細情報を表示するためのコマンドで、そのオプションを使用してファイルの更新日時を取得することができます。

以下に具体的な例を示します。

1. statコマンドの使用例

以下の例では、statコマンドを使用してファイルの更新日時を取得します。ここでは、example.txtというファイルの更新日時を取得しています。

bash
#!/bin/bash # ファイル名を指定 file="example.txt" # ファイルの更新日時を取得 mod_time=$(stat -c %y "$file") # 結果を表示 echo "ファイルの更新日時: $mod_time"

上記のスクリプトでは、stat -c %y を使用してファイルの更新日時を取得し、その結果を mod_time 変数に格納しています。%y はファイルの変更時刻(改行付き)を表すフォーマット指定子です。

2. カスタムフォーマットの使用

ファイルの更新日時を特定のフォーマットで取得したい場合は、date コマンドを組み合わせて使用することもできます。以下の例では、更新日時を「YYYY-MM-DD HH:MM」形式で表示します。

bash
#!/bin/bash # ファイル名を指定 file="example.txt" # ファイルの更新日時を取得して、フォーマットを変換 mod_time=$(stat -c %y "$file" | cut -d'.' -f1) # 結果を表示 echo "ファイルの更新日時: $mod_time"

このスクリプトでは、stat -c %y の結果からミリ秒以下の部分を cut コマンドを使って取り除いています。

3. MacOSでの使用例

stat コマンドはLinuxとMacOSでオプションが異なる場合があります。MacOSでは次のように使用します。

bash
#!/bin/bash # ファイル名を指定 file="example.txt" # MacOSの場合のファイルの更新日時を取得 mod_time=$(stat -f "%Sm" -t "%Y-%m-%d %H:%M:%S" "$file") # 結果を表示 echo "ファイルの更新日時: $mod_time"

ここでは、stat -f "%Sm" でファイルの更新日時を取得し、-t "%Y-%m-%d %H:%M:%S" でフォーマットを指定しています。

まとめ

Bashスクリプトでファイルの更新日を取得するには、stat コマンドを使用するのが便利です。LinuxとMacOSでオプションが異なるため、環境に応じて適切なコマンドを使用することが重要です。上記の例を参考に、必要に応じてカスタマイズして使用してください。

未分類

Posted by ぼっち