Qualcosa come:
find /path/ -type f -exec stat \{} --printf="%y\n" \; | 
     sort -n -r | 
     head -n 1
 Spiegazione:
- il comando find stamperà l'ora di modifica per ogni file ignorando ricorsivamente le directory (secondo il commento di IQAndreas non puoi fare affidamento sui timestamp delle cartelle)
 - ordina -n (numericamente) -r (inverso)
 - head -n 1:ottiene la prima voce
 
 Se hai una versione di find (come GNU find ) che supporta -printf allora non c'è bisogno di chiamare stat ripetutamente:
find /some/dir -printf "%T+\n" | sort -nr | head -n 1
 o
find /some/dir -printf "%TY-%Tm-%Td %TT\n" | sort -nr | head -n 1
 Se non hai bisogno di ricorsione, però:
stat --printf="%y\n" *
 
 Se potessi, voterei per la risposta di Paulo. L'ho provato e ho capito il concetto. Posso confermare che funziona.Il find Il comando può restituire molti parametri. Ad esempio, aggiungi quanto segue a --printf clausola:
%a for attributes in the octal format
%n for the file name including a complete path
 Esempio:
find Desktop/ -exec stat \{} --printf="%y %n\n" \; | sort -n -r | head -1
2011-02-14 22:57:39.000000000 +0100 Desktop/new file
 Consentitemi di sollevare anche questa domanda:l'autore di questa domanda vuole risolvere il suo problema utilizzando Bash o PHP? Dovrebbe essere specificato.