Как определить тип файла в Linux?

Я редактирую переменную среды LS_COLORS. dircolors перечисляет цвета по умолчанию для разных типов файлов. Типы файлов обозначаются следующим образом:

bd = (BLOCK, BLK)   Block device (buffered) special file
cd = (CHAR, CHR)    Character device (unbuffered) special file
di = (DIR)  Directory
do = (DOOR) [Door][1]
ex = (EXEC) Executable file (ie. has 'x' set in permissions)
fi = (FILE) Normal file
ln = (SYMLINK, LINK, LNK)   Symbolic link. If you set this to ‘target’ instead of a numerical value, the color is as for the file pointed to.
mi = (MISSING)  Non-existent file pointed to by a symbolic link (visible when you type ls -l)
no = (NORMAL, NORM) Normal (non-filename) text. Global default, although everything should be something
or = (ORPHAN)   Symbolic link pointing to an orphaned non-existent file
ow = (OTHER_WRITABLE)   Directory that is other-writable (o+w) and not sticky
pi = (FIFO, PIPE)   Named pipe (fifo file)
sg = (SETGID)   File that is setgid (g+s)
so = (SOCK) Socket file
st = (STICKY)   Directory with the sticky bit set (+t) and not other-writable
su = (SETUID)   File that is setuid (u+s)
tw = (STICKY_OTHER_WRITABLE)    Directory that is sticky and other-writable (+t,o+w)

Как определить, к какой из этих категорий относится файл или каталог?

Ссылки, на которые я ссылаюсь для LS_COLORS: здесь и здесь

Использование файла не работает; запрос каталога говорит мне, что каталог ... каталог. Но ясно, что у него есть флаг filetype, который не отображается в файле file , потому что некоторые каталоги имеют абсолютно ужасную бледно-зеленую подсветку с белым текстом. Использование ls -lah также не работает; первая буква строки разрешений - d , и это опять-таки недостаточно информации.

Ubuntu 19.10 | KDE Plasma 5.16.5 | zsh 5.7.1

4
задан 25 June 2020 в 05:01

1 ответ

Я не Я не знаю программу, которая перечислит тип файла так, как dircolors знает это. Я подозреваю, что нет, хотя это было бы хорошим дополнением к dircolors. Но вы можете сбросить базу данных и найти там те, которые вы хотите изменить. Например, для каталогов:

$ dircolors -p|grep dir

# Configuration file for dircolors, a utility to help you set the
# slackware version of dircolors) are recognized but ignored.
DIR 01;34 # directory
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable

Теперь вы знаете, сколько существует разных типов каталогов (для диколоров , они просто каталоги для файла . Проверьте разрешения белого в бледно-зеленом каталоге с ls -ld your_directory

Вы также можете перечислить цвета с их значением в вашей системе. Проверьте этот скрипт .

Я знаю, что эти шаги не выполняются именно то, что вы хотите: получить тип файла, используемый dircolors для определенного узла. Но,

5
ответ дан 30 July 2020 в 22:20

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

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