Nell'output colorato ordinato ls|sort
, possiamo vedere che l'ultima riga xyz-0.0.1-1554323568.rpm
è la prima riga dell'output non colorato. Le altre righe sono ordinate allo stesso modo.
Se diamo un'occhiata ai codici escape colorati (non ordinati), possiamo vedere che la prima riga inizia con un codice escape diverso ^[[0m
. Ciò sta causando l'ordine errato durante l'ordinamento (^[[01
prima del ^[[0m
).
$ /bin/ls --color xyz* | cat -A
^[[0m^[[01;31mxyz-0.0.1-1554323568.rpm^[[0m$
^[[01;31mxyz-0.0.1-1554490900.rpm^[[0m$
^[[01;31mxyz-0.0.1-1554745305.rpm^[[0m$
^[[01;31mxyz-0.0.1-1554751021.rpm^[[0m$
^[[01;31mxyz-0.0.1-1555513460.rpm^[[0m$
^[[01;31mxyz-0.0.1-1555951745.rpm^[[0m$
Fai:
/bin/ls --color > file1
/bin/ls > file2
e confronta i contenuti, vedrai la differenza.
Alias ls
a /bin/ls --color=auto
è probabilmente un'idea migliore, fermerà ls
dall'utilizzo di codici colore quando non si scrive direttamente sul terminale (come quando si esegue il piping al programma successivo o si scrive su un file).