«xdg-mime query filetype» возвращает тип файла, отличный от «file --mime-type»

Да, используйте запись CNAME . Точный синтаксис и детали будут зависеть от вашего программного обеспечения, но в основном вместо того, чтобы писать что-то вроде этого:

xx.abc.com. A 192.0.2.1

... вы напишите что-то вроде этого:

xx.abc.com. CNAME xx.def.com.

4
18.01.2017, 19:05
2 ответа

Если вы заранее знаете расширение (расширения) ваших пользовательских текстовых файлов, вы можете просто зарегистрировать новую запись MIME для них, в качестве обходного пути.

Например, если ваши файлы имеют расширение ".list":

Подготовьте файл дескриптора: zeppelin-list.xml

<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/plain">
    <comment>List file type</comment>
    <glob pattern="*.list"/>
  </mime-type>
</mime-info>

Зарегистрируйте новую MIME запись:

%xdg-mime install zeppelin-list.xml

Запрос:

%xdg-mime query filetype my.list
text/plain
3
27.01.2020, 20:57

xdg-mime является основным компонентом среды рабочего стола, и вы не должны пытаться изменить его поведение. Я понимаю ваши опасения сломать критически важный сценарий, но если он дает разные результаты на рабочей машине и на тестовой машине, он уже сломан, и его нужно исправить. По сути,

file -b --mime-type <file>

является заменой

xdg-mime query filetype <file>

, и его изменение должно быть безболезненным, особенно если ваше предпочтительное поведение является выходом file -i.

Команды xdg-* зависят от среды рабочего стола, в которой вы работаете (помните, что префикс расшифровывается как X Desktop Group) и, в принципе, их вообще не следует использовать в скриптах, не предназначенных для взаимодействия с пользователем.

Если вы хотите иметь одинаковое поведение во всех системах, используйте такие команды, как file, которые предназначены для того, чтобы вести себя всегда одинаково (OK, они могут быть различиями в небольших версиях, но это неизбежно).

Если вам нужно «наиболее разумное» поведение для каждой системы, используйте команды-оболочки, такие как xdg-mime, и будьте готовы адаптироваться к их представлению о «наиболее разумном» в каждой системе.

Неправильно пытаться изменить каждую среду таким образом, чтобы зависящие от среды программы вели себя одинаково.

1
27.01.2020, 20:57

Теги

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