Создание редактора, зависящего от размера файла (для того же mimetype)

У меня есть несколько действительно больших файлов на диске как Data. Мой редактор по умолчанию - gedit. Я хотел бы знать, могу ли я изменить свой редактор по умолчанию на что-то другое, например, скажем, glogg, для файлов выше определенного порога размера. То есть я могу выбрать приложение по умолчанию в зависимости от размера файла, даже если файлы имеют одинаковый формат?

6
задан 29 September 2015 в 08:13

1 ответ

Вам нужен a desktop файл и сценарий обертки:

  1. desktop файл

    • Создайте файл на рабочем столе

      nano ~/.local/share/applications/wrapper.desktop
      
    • Добавьте конфигурацию ниже

      [Desktop Entry]
      Name=File size dependent editor
      Comment=File size dependent editor
      Exec=/home/user/bin/wrapper %f
      Icon=gedit
      Terminal=false
      Type=Application
      Categories=Editor;
      StartupNotify=true
      MimeType=text/plain;
      
    • Замена user в Exec=/home/user/bin/wrapper %f с Вашим именем пользователя, выводом

      echo $USER
      
    • Замените имя значка в Icon=gedit с именем или путем по Вашему выбору

    • Использовать MimeType=text/plain указывать типы пантомимы файлов, для которых состоит в том, чтобы применяться решение. Разделите несколько типов пантомимы через ;

      Получите тип пантомимы через

      mimetype your_file
      

      например, для текстового файла

      text/plain
      
    • Если Вы хотите использовать редактора с CLI, как нано, чем замена false в Terminal=false с true

  2. Сценарий обертки

    • Создайте новый сценарий

      mkdir -p ~/bin
      nano ~/bin/wrapper
      
    • Добавьте код ниже

      #!/usr/bin/env bash
      LARGE_FILE_EDITOR="glogg"
      SMALL_FILE_EDITOR="gedit"
      
      MAX_SMALL_FILE_SIZE=1000000
      
      FILESIZE=$(stat -c%s "$1")
      
      if [ "$FILESIZE" -le $MAX_SMALL_FILE_SIZE ]; then
              "$SMALL_FILE_EDITOR" "$1"
      else
              "$LARGE_FILE_EDITOR" "$1"
      fi
      exit 0
      
    • Определите своего редактора для больших файлов в LARGE_FILE_EDITOR, например. glogg

    • Определите своего редактора для маленьких файлов в SMALL_FILE_EDITOR, например. gedit

    • Определите максимальный размер файла для $SMALL_FILE_EDITOR в MAX_SMALL_FILE_SIZE, например, 1000000 для 1 МБ

    • Сделайте свой исполняемый файл сценария обертки

      chmod +x ~/bin/wrapper
      
  3. Единица/GNOME перезапуска Shell, для Shell GNOME, например, Alt-F2, вводит r и Войдите

  4. Свяжите одни или несколько типов файлов с оберткой

    • Откройте свой файловый менеджер и щелчок правой кнопкой по файлу, для которого состоит в том, чтобы применяться решение

    • Нажмите Open With Other Application

    • Нажмите кнопку View All Applications

    • Выберите зависимого редактора Размера файла записи

  5. Наслаждаться ;)

2
ответ дан 29 September 2015 в 18:13
  • 1
    Спасибо. Вы описываете то, что я в основном подозревал. Однако я, может казаться, не нахожу команды, которые возвращают ту же информацию это возвраты arp. Например, на моей основной машине я могу проверить с помощью ping-запросов " mark-N3050T" " mark-N53Jf" и " gateway". я могу также проверить с помощью ping-запросов " raspberrypi.local" но не " raspberrypi" никакое имя узла, возвращаемое arp. Если я использую avahi-обзор для наблюдения то, что мог бы использовать информационный mndns4-минимум, я вижу .local для метки-N3050T, метки-N53Jf и raspberrypi. Я ничего не вижу для шлюза. Я, вероятно, должен осуществить сниффинг своей сети более тщательно, чтобы видеть, как именами узлов обмениваются. – mrh53 19 December 2016 в 14:10

Другие вопросы по тегам:

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