1. ホーム
  2. linux

[解決済み] findコマンドで更新日時を表示するには?

2023-01-20 21:04:39

質問

を使って find コマンドを使えば、複数の階層を持つディレクトリ名を表示することができる。次のコマンドは、以下のディレクトリをすべて表示します。 /var の下にあるすべてのディレクトリを深さ2で表示する。

find /var -maxdepth 2 -type d;

結果が表示されます。

/var
/var/log
/var/log/sssd
/var/log/samba
/var/log/audit
/var/log/ConsoleKit
/var/log/gdm
/var/log/sa

を使って stat コマンドを使えば、更新日時がわかります。

stat /var/log/samba | grep 'Modify:'

という結果になります。

Modify: 2014-01-02 11:21:27.762346214 -0800 

2つのコマンドを組み合わせて、ディレクトリを更新日時とともにリストアップする方法はありますか?

どのように解決するのですか?

あなたは -exec のスイッチを find の出力形式を定義し stat の出力形式を定義し -c というスイッチを使うことで、以下のようになります。

find /var -maxdepth 2 -type d -exec stat -c "%n %y" {} \;

これは、出力の同じ行に、ファイル名とその変更時刻を与えるはずです。