2

私が取り組んでいる Web サイトでは、夜間の git commit を行っているときに、フッターの「このページは最後に変更されました:」セクションを自動的に更新できるようにしたいと考えています。基本的には、毎晩深夜に実行するシェル スクリプトを作成して、サーバーの一般的なメンテナンスをすべて行う予定です。これらのタスクのほとんどは自動化する方法を既に知っていますが、すべてのページに含まれ、サイトが最後に更新された日付を表示するファイル (footer.php) があります。私のウェブサイトを再帰的に調べて、すべてのファイルのタイムスタンプを確認できるようにしたいのですが、これらのいずれかが footer.php の日付の後に編集された場合は、この日付を更新したいと考えています。

必要なのは、ファイルを再帰的に反復し、最終変更の日付のみを返す UNIX コマンドだけです。ファイル名やどのような変更が行われたかは必要ありません。最近更新されたファイルが変更された日 (できれば時間) を知る必要があるだけです。

「ls -l」と「cut」を使用すると、これを行うためにすべてのフォルダーを反復処理できることはわかっていますが、より迅速に実行され、より簡単なコマンドを望んでいました。できれば単一行のシェル コマンド (おそらく -R パラメーターを使用)

4

3 に答える 3

2

すべてのfindアクセス時間をUnix形式で出力し、ソートして最大にします。必要な日付形式に変換することは、読者の練習問題として残されています。

find /path -type f -iname "*.php" -printf "%T@" | sort -n | tail -1
于 2010-08-06T16:18:24.037 に答える
1

GNU 検索

find /path -type -f -iname "*.php" -printf "%T+"

find man ページをチェックして、他の -printf 指定子で遊んでください。

于 2010-08-06T16:11:40.840 に答える
0

ファイル システム全体を調べて新しい更新を探すのではなく、他のファイルが変更されるたびにフッターを更新する inotify スクリプトを確認することをお勧めします。

于 2010-08-06T16:08:24.030 に答える