Certifique-se de que o zsh esteja instalado (todas as principais distribuições possuem um pacote para ele).
zsh -c 'ls -log **/*(.om[1])' | awk '{print $4, $5, $6}'
**/*
é um padrão de caractere curinga para corresponder todos os arquivos em subdiretórios de forma recursiva e
(.om[1])
são qualificadores da glob para limitar as correspondências a arquivos regulares ( .
) , classifique por hora de modificação ( om
) e mantenha apenas o arquivo mais recente ( [1]
). Os qualificadores Glob são um recurso exclusivo do zsh e muitas de suas funcionalidades, em particular a classificação, são difíceis de reproduzir em outros shells.
Eu incluo apenas arquivos regulares, pois isso geralmente é necessário - mas você pode querer remover o .
qualificador se quiser que o registro de data e hora reflita a última vez que um arquivo foi excluído, por exemplo.
O GNU ls tem uma opção para controlar o formato de hora ( --time-style
). Observe que, dependendo do formato da hora, talvez seja necessário ajustar o pós-processamento para extrair o campo de hora.
Como alternativa, você pode usar o comando stat
do Linux ou o stat
builtin para imprimir o registro de data e hora em seu formato desejado.
zsh -c 'zmodload zsh/stat; stat +mtime -- **/*(.om[1])'