MyTetra Share
Делитесь знаниями!
Как в Midnight Commander настроить открытие Word и Excel-файлов в Libre Office
Время создания: 04.03.2020 09:12
Текстовые метки: linux, mc, midnight commander, расширение, открыть, файл, excel, word, doc, docx, xls, xlsx, open office, libre office
Раздел: Компьютер - Linux - Bash - Команды и скрипты

Открытие офисных файлов через файловый менеджер Midnight Commander происходит двумя методами. Первый метод - это определение типа файла по его расширению через регулярное выражение. Второе - это определение типа файла через анализ файла, который производится с помощью утилиты file.


Проблема в том, что утилита file для файлов с расширением *.xlsx может выдавать разные типы файлов:



Отчет хозяйственный.xlsx: Microsoft OOXML
Промежуточный отчет.xlsx: Microsoft Excel 2007+



И эта особенность не учитывается в настройках MC, которые находятся в меню Команда - Редактировать файл расширений. Проблема усугубляется тем, что часто файлы документов находятся на ресурсах Samba, и при стандартном монтировании имеют права на исполнение. Поэтому такие файлы MC пытается запустить как программы, выдавая в консоль ошибку:



(bad magic number): Exec format error


В Midnight Commander v.4.8.18 блоки настроек выглядят так:


# Microsoft Word Document

regex/i/\.(do[ct]|wri)$

Open=/usr/lib/mc/ext.d/doc.sh open msdoc

View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc

type/^Microsoft\ Word

Open=/usr/lib/mc/ext.d/doc.sh open msdoc

View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc


...


# Microsoft Excel Worksheet

regex/i/\.xl[sw]$

Open=/usr/lib/mc/ext.d/doc.sh open msxls

View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls

type/^Microsoft\ Excel

Open=/usr/lib/mc/ext.d/doc.sh open msxls

View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls



Здесь видно, что по регулярному выражению не будут определяться файлы *.docx и *.xlsx. А по содержимому файлов, как было показано выше, будет определяться только часть файлов. Как это исправить? Очень просто: надо доработать регулярные выражения.


Для документов MS Word


Было:


regex/i/\.(do[ct]|wri)$


Стало:


regex/i/\.(do[ct]|wri)x?$



Для документов MS Excel


Было:


regex/i/\.xl[sw]$


Стало:


regex/i/\.xl[sw]x?$



После такой настройки открытие файлов офисного пакета будет работать правильно. Перезапуска Midnight Commander не требуется.


Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования