Você poderia usar algo assim
stat --printf "%Y %n... | tr '$ touch d; sleep 1; touch b c; sleep 1; touch a;
$ ls -tr
d c b a
$ stat --printf "%Y %nstat --printf "%Y %n... | tr '$ touch d; sleep 1; touch b c; sleep 1; touch a;
$ ls -tr
d c b a
$ stat --printf "%Y %n%pre%" * | sort -z -k1,1n -k2 | sed 's/^[0-9]* //;s/$/\n/;s/\x0[0-9]* / /g'
d b c a
' '\n'
# or just print the filenames:
... | sed 's/^[0-9]* //;s/$/\n/;s/\x0[0-9]* /\n/g'
" * | sort -z -k1,1n -k2
# or quoted file names:
stat --printf "%Y %N%pre%" * | sort -z -k1,1n -k2
" * | sort -z -k1,1n -k2 | sed 's/^[0-9]* //;s/$/\n/;s/\x0[0-9]* / /g'
d b c a
' '\n'
# or just print the filenames:
... | sed 's/^[0-9]* //;s/$/\n/;s/\x0[0-9]* /\n/g'
" * | sort -z -k1,1n -k2
# or quoted file names:
stat --printf "%Y %N%pre%" * | sort -z -k1,1n -k2
- O primeiro critério de classificação é o campo 1 (
%Y- > carimbo de data e hora (precisão: segundos)), n classificação umerica. - Não r eversed como
ls -tclassifica com "newest first", que já é inversa desort -n, mas você pode usar-k1,1nrpara alterar isso. - Os segundos critérios de classificação são todos do campo 2 até o final da linha (
%nou%N- > filename) - Use o delimitador zero para evitar problemas com nomes de arquivos, incluindo
\n.
e, em seguida, corrija o formato ao seu gosto com tr e / ou sed :
Saída:
%pre%