Para os 10 últimos arquivos regulares .csv
em qualquer diretório saved
, em um sistema GNU:
find . -type f -regex '.*/saved/[^/]*\.csv' -printf '%T@:%pfor dir (**/saved(ND/)) {
newest=($dir/*.csv(D.om[1,10]))
(($#newest)) && printf '%s\n' $newest
}
' |
sort -rnz |
awk -v RS='find . -type f -regex '.*/saved/[^/]*\.csv' -printf '%T@:%pfor dir (**/saved(ND/)) {
newest=($dir/*.csv(D.om[1,10]))
(($#newest)) && printf '%s\n' $newest
}
' |
sort -rnz |
awk -v RS='%pre%' -F/ '{sub(/[^:]*:/, ""); file = $0; NF--}
++n[$0] <= 10 {print file}'
' -F/ '{sub(/[^:]*:/, ""); file = $0; NF--}
++n[$0] <= 10 {print file}'
(os arquivos serão listados do mais novo para o mais antigo).
Com zsh
, você também pode fazer algo como: