Почему ls окрашивает два, предположительно, подобных файла по-другому?

Так, вот специфическая ситуация:

$ ls -l foo.sqlite foo.ssqlite
-rw-r--r-- 1 xie xie 8192 Jan 22 19:25 foo.sqlite
-rw-r--r-- 1 xie xie 8192 Jan 23 11:48 foo.ssqlite

В выводе, foo.sqlite окрашен в синий ls в то время как foo.ssqlite окрашен в красный/розовый. Полномочия являются тем же, типы являются тем же:

$ file foo.sqlite foo.ssqlite
foo.sqlite:  SQLite 3.x database, last written using SQLite version 3026000
foo.ssqlite: SQLite 3.x database, last written using SQLite version 3023001

Единственное заметное отличие - это foo.sqlite был создан сценарием Perl, в то время как другой - сценарием Python, однако который не объясняет другую окраску, как будто ls распознает их как два различных типов файлов. Ну, вопрос затем состоит в том, почему делает ls сообщите о них в различных цветах несмотря на тип, являющийся тем же?

1
задан 23 January 2019 в 10:33

1 ответ

По-видимому, ls полагается на переменную среды $LS_COLORS. Выполнение echo "$LS_COLORS" | grep --color sqlite показанный запись со значением *.sqlite=38;5;147, который, по-видимому, является цветовым кодом Escape ANSI с 256 цветами в форме ESC[38;5;#m для основного цвета.

2
ответ дан 7 December 2019 в 13:19

Другие вопросы по тегам:

Похожие вопросы: