Почему sudo gedit НЕ открывает файлы, начинающиеся с восклицательного знака

Это исправление помогло мне, когда проблема возвращалась после каждого обновления.

edit /usr/share/applications/google-chrome.desktop

В этом файле три записи:
[Запись на рабочем столе], [Группа ярлыков NewWindow] и [Группа ярлыков NewIncognito]

После каждой записи добавляйте эту строку:

StartupWMClass=Google-chrome-stable

Нашли это решение здесь:
http://kb.openstudioproject.com/content/fix-double- google-chrome-icon-docky-and-plank

И отчет об ошибке здесь:
https://code.google.com/p/chromium / вопросы / детали? ID = 378881 # c13

5
задан 25.01.2020, 10:06

4 ответа

Вы вводите команду sudo gedit /path/to/file в оболочку (по умолчанию bash), но современные оболочки используют '!' персонаж для специальных целей. Специальные символы могут интерпретироваться без специального значения, если им предшествует символ «\».

Попробуйте:

gksu gedit /path/to/\!file

вместо

gksu gedit /path/to/!file

В современных оболочках введенные вами команды запоминаются, и вы можете повторно вводить их, используя «!» персонаж. !!, например, повторно вводит последнюю команду. Как указывает Ури, это называется указателем события. Интерпретатор bash также позволяет вам использовать Ctrl-R, чтобы легко находить команды, которые вы хотите повторно ввести, но «!» механизм все еще существует для нас, стариков, которые имеют привычку использовать «!» вместо. Другое использование "!" включите $! параметр, и его использование в арифметических и логических выражениях.

Ссылка на bash может быть полезна, если вы столкнетесь с такими загадками, потому что оболочки могут быть очень сложными. Руководство gnu bash здесь здесь .

Ури любезно упомянул, что вы должны использовать gksu или gksudo вместо sudo. Здесь есть объяснение: В чем разница между «gksudo nautilus»? и "sudo nautilus"? .

8
ответ дан 25.01.2020, 10:08
  • 1
    Расширение Истории @damien является немного слишком сумасшедшим для моей симпатии, таким образом, я отключаю его путем помещения set +H в моем ~/.bashrc. Если Вы действительно не хотите использовать расширение истории, я рекомендую делать то же. – Shai Petel 25.01.2020, 10:08
  • 2
    Спасибо за быстрый ответ и альтернативный способ открыться! файл с gksu gedit /path/to/\!file опция – Stanislav 25.01.2020, 10:09
  • 3
    @geirha, походит на хорошую альтернативу. Вы возражали бы добавлять его как ответ? – Liam Gray 25.01.2020, 10:09

Полное решение было бы заключить имя каталога в одинарные кавычки (').

Пример

sudo gedit /media/alexandro/'Disco Local'/'Dropbox (Equipe Alexandro)'/Pessoal/'!A Organizar'/Documentos/'!asd.txt'

0
ответ дан 25.01.2020, 10:07
  • 1
    АО Bem vindo AskUbuntu. Aqui só sã o aceites perguntas e respostas их inglê s. Deves també m evitar comentá rios que nã o tenham relevâ параграф ncia soluç ã o. Convido-te ler o guia делают AskUbuntu. – optimizitor 25.01.2020, 10:08

Это обозначение события.

см. man bash:

  • ! Расширяется до идентификатора процесса самой последней выполняемой фоновой (асинхронной) команды.
1
ответ дан 25.01.2020, 10:08
  • 1
    Странице справочника может быть довольно трудно следовать, особенно та часть. Та кавычка от раздела параметра и it' s поэтому $!, который расширяется до того идентификатора процесса. Одно только положение это - Указатель События, как Вы упомянули. Спасибо за полезное исправление Вы сделали к моему ответу, между прочим. – Knu 25.01.2020, 10:08
  • 2
    Слова благодарности я нашел оба ответа полезными, но отмеченными другое корректное для предоставления мне альтернативный способ все еще открыть файл от терминала – Sebastien Lorber 25.01.2020, 10:08

Легкое решение - навсегда отключить расширение истории, добавив следующую строку в ~/.bashrc

set +H

Если вы никогда не использовали преднамеренно расширение истории, вы ничего не пропустите, отключить его.

5
ответ дан 25.01.2020, 10:08

Теги

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