В дополнение к ответу Стивена Китта вы можете рассмотреть (, особенно если вы сами являетесь разработчиком и если программа — file
в вашем случае — имеет исходный код, который не слишком сложен. чтобы понять )получение исходного кода этой программы (, возможно, из вашего дистрибутива )-, поскольку это бесплатное программное обеспечение-и исправление его, а также отправка исправления.
Если вы потратите время на изучение исходного кода , вы, вероятно, сделаете более качественный отчет об ошибке.
Если вы потратите больше времени на предложение исправления , вас, скорее всего, будут рассматривать более серьезно (и ИМХО вы действуете более в духе свободного программного обеспечения ).
Итак, используйте свободу, предоставляемую свободным программным обеспечением:изучайте его исходный код(свобода #1 )и улучшайте его(свобода #3 ).
Сегодня очень легко публиковать (например. на github)вашу улучшенную версию и поделитесь ею(Freedom #2 ).
Убедитесь, что установлена последняя версия программы file
. Многие дистрибутивы не используют этот (и, возможно, ошибка в вашем дистрибутиве уже исправлена вышестоящим ).
Я не уверен, что ваше --correct_extension
поведение принадлежит file
(, которая является программой для запроса , а не изменения ваших данных ). Но если это так, его, вероятно, следует писать по буквам --correct-extension
или --rename-extension
... И как только вы попытаетесь реализовать это, вы можете обнаружить, что есть странные угловые случаи (как насчет сжатого tar-файла или сжатого Исходный файл C или что-то, для чего может потребоваться несколько расширений файла ).
Обратите внимание, что (в отличие от Windows )в Linux и Unix файл на самом деле является inode(см. inode (7))и может иметь несколько имен(или нет ),и могут быть открыты несколькими процессами одновременно (читать о файловых дескрипторах)-или вообще не открываться, даже если большинство файлов имеют только одно имя (, но см. ссылку (2)и стат (2)). Поскольку один и тот же файл может называться foo.txt
и bar.gz
, не имеет большого смысла придавать большое значение расширениям файлов. См. также путь _разрешение (7).
Итак, если вы попытаетесь реализовать свою correct-extension
идею, вы обнаружите, что реализовать (и даже указать )не так просто, и что для этого нет очевидного простого поведения.
Вероятно, ваша идея не очень хороша и не может быть легко реализована в системах Linux и POSIX (, по крайней мере, не для всех случаев ).
Поэтому я рекомендую даже не отправлять запрос функции (в его первоначальной форме, это потеря времени для вас и для разработчиковfile
). Или еще много работать над ним, улучшать его характеристики и отправлять патч.... Конечно, вы потратите много работы на это (, и я действительно не думаю, что это стоит боли ). ].
Возможно, вы также прочитаете какую-нибудь книгу по программированию для Unix (, например старую ALP или что-нибудь поновее; а также введение (2)и системные вызовы (2))иОперационные системы :Three Easy Pieces.
Решил. Зонд os -никогда ничего не возвращал с терминала, работающего от root (sudo -i ). Однако то, что сработало:
Я добавил эту запись в список Grub (с помощью настройщика grub -или отредактировав файл /etc/grub/40 _custom напрямую)
menuentry "Windows 10 (UEFI)" {
search --set=root --file /EFI/Microsoft/Boot/bootmgfw.efi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
Помощь отсюда:https://askubuntu.com/questions/211339/invalid-efi-file-path-while-booting-windows