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 -t
classifica com "newest first", que já é inversa desort -n
, mas você pode usar-k1,1nr
para alterar isso. - Os segundos critérios de classificação são todos do campo 2 até o final da linha (
%n
ou%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%