Linux (как другие нельды) исходно не обеспечивает функцию отмены. Философия - то, что, если это пошло, это пошло. Если это было важно, это должно было быть сохранено.
Существует файловая система предохранителя, которая автоматически сохраняет копии старых версий: copyfs, доступный во всех хороших дистрибутивах. Конечно, это может использовать много ресурсов.
Лучший способ защитить от таких несчастных случаев состоит в том, чтобы использовать систему управления версиями (cvs, базар, darcs, мерзавец, подвижный, подверсия...). Требуется немного времени для изучения, но это окупается удивительно в среднесрочном и долгосрочном.
Этот список создается путем анализа .desktop файлов, расположенных в:
/usr/share/applications
~/.local/share/applications
Мог бы быть больше чем один вариант использования на приложение, взять, например, медиаплеер banshee
который имеет три .desktop файла по умолчанию:
$ ls -1 /usr/share/applications/banshee*
/usr/share/applications/banshee-1-audiocd.desktop
/usr/share/applications/banshee-1.desktop
/usr/share/applications/banshee-1-media-player.desktop
Единственной разницей между теми файлами является стартовый параметр и список MimeType.
banshee-1.desktop
: Общие медиа-файлыbanshee-1-audiocd.desktop
: Аудиокомпакт-дискbanshee-1-media-player.desktop
Аудиоплеер (Также используемый rhythmbox
, vlc
, и другие)Таким образом, у нас есть три 'Банши Media Player' в 'Открытый с' списком (и возможно также в 'Главном меню').
Другой способ заполнить это пространство путем создания персональных .desktop файлов в ~/.local/share/applications
. Или вручную или при помощи инструмента. alacarte
(или щелкните правой кнопкой по 'Main Menu'-> 'Edit Menu'), один из тех.
Каждый раз Вы создаете или перемещаете приложение в alacarte
, новый .desktop файл помещается внутри ~/.local/share/applications
. Отключение приложения "удалит" его из 'Главного меню', но не из 'Открытый с' списком.
Но кнопка 'Delete' делает путем создания идентичной копии с /usr/share/applications
в ~/.local/share/applications
и добавление Hidden=true
в .desktop файл, таким образом "перезаписывая" наследованные значения в масштабе всей системы.
Удаление двух из тех записей от alacarte
результаты в:
$ ls -1 ~/.local/share/applications/banshee*
/home/user/.local/share/applications/banshee-1-audiocd.desktop
/home/user/.local/share/applications/banshee-1-media-player.desktop
Удаление любых записей от ~/.local/share/applications
инвертирует к существующему ранее состоянию (три banshee
объекты).
Если у Вас действительно нет дубликатов в тех двух папках, попытайтесь удалить любые дубликаты из alacarte
или проигрывание с Hidden=true
опция в соответствующих .desktop файлах.
Если Вы заглядываете ~/.local/share/applications
и /usr/share/applications
можно удалить дубликаты из тех двух мест. Это сделало это для меня.
jhbuild.desktop
и mimeapps.list
в ~/.local/share/applications. И, в/usr/share/applications нет никаких простофиль, и я все еще испытываю проблему.
– tshepang
17.12.2010, 11:21
Своего рода выстрел в темноте, но Вы попытались нажать на одну из записей и нажать кнопку Remove, как замечено в Вашем снимке экрана? Если это удаляет все записи, Вы могли бы просто повторно добавить его.
Можно также посмотреть в редакторе меню "Приложений" Gnome и удалить дубликаты отсюда.
Я знаю, что этот поток стар, но это вызывается вином для многих.
rm ~/.local/share/applications/wine-extension*
очищенный эта путаница для меня.
Подтверждение этого потока старо, я был озадачен этой проблемой сам. Я лично чувствовал удаление файлов, или проигрывание "очистки" было ненужным, как просто настраивал вещи для текущего пользователя. Если существует больше чем 1 .desktop файл, разве у каждого не может быть уникального описания? Насколько Linux появился, определенные разработчики приложения действительно пропустили простые вещи как это?
Я нашел, открываете ли Вы .desktop файлы в текстовом редакторе, Поле имени что дисплеи в меню "Open With". Таким образом для меня, я искал .desktop файлы, которые я знал, создавали проблему (например, 3 файла Банши). Смотря на каждого, различие почти всегда имело отношение, какой mimetypes ярлык обрабатывает. Это вызвано тем, что некоторые программы предпочитают передавать различные параметры в зависимости от mimetype. Только в 1 экземпляре сделал я нахожу дублирующиеся записи результатом обновления приложений, не моющегося, это - старый .desktop файл
Вооруженный тем исследованием, я изменил Поля имени известных дублирующихся записей для отражения этого. Например, редактирование .desktop Банши файла должно конкретно обработать Аудиокомпакт-диск, я сделал чтение имени как таковое:
Банши (аудиокомпакт-диск)
Rhythmbox является также хорошим примером, поскольку он имеет отдельный .desktop файл специально для обработки CD + MP3-плееры, но каждый разоблачает то же. Мое предположение является 1 загрузкой файла приложение и фокусируется на единице, а не Вашей библиотеке. Это стоит переименовать, затем, поскольку Вы не хотели бы, чтобы это произошло при обработке файлов MP3/OGG.
Так или иначе я думаю, что это заставляет меню Open With выглядеть чистым, просто не удаляя файлы, которые, кажется, полезны. Сохраняются ли эти изменения между обновлениями приложения, все же виден..., но они - простые и быстрые редактирования, которые могли даже быть заданы сценарием. Оболочка помогает чрезвычайно в этом случае. Например, для наблюдения всех имен файлов (с путем) с такими дублирующимися записями:
grep -rl "^Name=Banshee$" /usr/share/applications
Где "Банши", конечно, что обнаруживается несколько раз в открытом меню With. В примере, обеспеченном вершина, приложение назвали Geany.
С этим можно отправить результирующие файлы прямо редактору. Если Вы не эксперт в reg выражениях, ^ и $ указывают начало строки и конец строки, соответственно. Это мешает системе находить строки как XGnome-FullName=Banshee Media Player
Это также препятствует тому, чтобы он нашел записи, которые Вы, возможно, уже согласовали.