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