次のようなもの:
find /path/ -type f -exec stat \{} --printf="%y\n" \; |
sort -n -r |
head -n 1
説明:
- find コマンドは、ディレクトリを再帰的に無視して、すべてのファイルの変更時刻を出力します (IQAndreas のコメントによると、フォルダのタイムスタンプに頼ることはできません)
- sort -n (数値順) -r (逆順)
- head -n 1:最初のエントリを取得
find
のバージョンをお持ちの場合 (GNU find
など ) -printf
をサポートする stat
を呼び出す必要はありません 繰り返し:
find /some/dir -printf "%T+\n" | sort -nr | head -n 1
または
find /some/dir -printf "%TY-%Tm-%Td %TT\n" | sort -nr | head -n 1
ただし、再帰が必要ない場合:
stat --printf="%y\n" *
できれば、パウロの答えに投票します。私はそれをテストし、概念を理解しました。私はそれが動作することを確認できます。find
コマンドは多くのパラメーターを出力できます。たとえば、次を --printf
に追加します。 節:
%a for attributes in the octal format
%n for the file name including a complete path
例:
find Desktop/ -exec stat \{} --printf="%y %n\n" \; | sort -n -r | head -1
2011-02-14 22:57:39.000000000 +0100 Desktop/new file
この質問もさせてください。この質問の作者は、Bash または PHP を使用して問題を解決したいと考えていますか?それを指定する必要があります。