Есть ли способ быстро отправить выбранные файлы в консоль в Midnight Commander?

Вопрос или проблема

В MC я могу скопировать имя текущего файла из списка файлов в консоль, нажав Ctrl+Enter.

Предположим, я хочу скопировать несколько файлов в консоль. Например: хочу создать *.zip с несколькими файлами:

zip new_zip.zip a.txt b.txt c.txt 231202fkfo3f.txt 

Я могу выбрать несколько файлов с помощью Insert (или эквивалента Ctrl+t). Я хочу одну комбинацию клавиш, которую можно использовать после этого, чтобы все имена выбранных файлов сразу попали в консоль. Что-то вроде Ctrl+Enter.

Какие способы это сделать?

Если вы нажмете Ctrl+x t, это вставит имена всех файлов, которые вы отметили с помощью Ctrl+t или Insert, в командную строку.

Подобное встроенное решение доступно из пользовательского меню F2. Оно называется “Сделать что-то с отмеченными файлами” и выполняет заданную команду поочередно для файлов.

Новые команды могут быть добавлены в это меню. Это немного сложное решение, но оно сработало для меня. (Поддержка подшелла необходима.)

Файл конфигурации пользовательского меню обычно находится по адресу:

/etc/mc/mc.menu

Мое решение основано на “Сделать что-то с отмеченными файлами”. Я скопировал его строки и изменил вот так:

+ t t
p       Поместить выбранные файлы в историю
    set %t
    while [ -n "$1" ]; do
      STR="$STR \\\"$1\\\""
      shift
    done
    bash -ic "history -s $STR" > /dev/null

Первая строка означает, что она должна отображаться только если выбрано несколько файлов. Вторая строка содержит заголовок и комбинацию клавиш в пользовательском меню (p). После этого идет скрипт оболочки, который добавляет выбранные имена файлов в вашу историю.

Добавьте эти строки в mc.menu и будьте внимательны к табуляции. Первая и вторая строки не имеют табуляции, а скрипт табулирован TAB-ами. В противном случае mc не сможет его разобрать.

После этого вам следует выбрать несколько файлов и нажать F2. Нажмите только что добавленное “Поместить выбранные файлы в историю”. Теперь они добавлены в историю, но их нужно перезагрузить, чтобы использовать. Нажмите Ctrl + O, и вы должны ввести history -r в командную строку. В конце концов, вы найдете выбранные имена файлов, нажав клавишу UP.

Также можно использовать альтернативное решение. Возможно, проще просто напечатать строку в терминал, а затем вы можете ее скопировать и вставить. Следующий скрипт реализует это:

+ t t
p       Печать выбранных файлов в подшелле
    set %t
    while [ -n "$1" ]; do
      STR="$STR \"$1\""
      shift
    done
    echo "$STR"

Ответ или решение

Вопрос о том, как быстро отправить выбранные файлы в консоль в Midnight Commander (MC), является актуальным для многих пользователей, работающих с этим файловым менеджером. Хотя по умолчанию вы можете копировать имя текущего файла, нажав комбинацию клавиш Ctrl + Enter, существует несколько эффективных способов для обработки сразу нескольких файлов. Рассмотрим эти способы более подробно.

1. Использование комбинации клавиш для вставки имен файлов

Если вы уже выбрали несколько файлов, вы можете легко вставить их имена в строку команды, используя комбинацию клавиш:

  • Ctrl + x, t — эта команда вставит все имена выбранных файлов в командную строку. Это наиболее удобный и быстрый способ для создания команды, например, для архивации с помощью zip.

2. Использование меню F2

Midnight Commander имеет специальное меню, доступное через клавишу F2, которое позволяет выполнять действия над отмеченными файлами. Один из вариантов состоит в использовании функции "Сделать что-то с отмеченными файлами". Вы можете настроить свой собственный скрипт для выполнения определенных команд с вашими выбранными файлами.

Пример настройки меню:

Вы можете добавить свои команды в файл конфигурации /etc/mc/mc.menu. Пример кастомизированной команды может выглядеть следующим образом:

+ t t
p       Поместить выбранные файлы в историю
    set %t
    while [ -n "$1" ]; do
      STR="$STR \\\"$1\\\""
      shift
    done
    bash -ic "history -s $STR" > /dev/null

3. Подробности реализации

  • Первая строка определяет, что команда должна отображаться только при выборе нескольких файлов.
  • Вторая строка — название и сочетание клавиш для доступа к функции в меню.
  • Далее идет скрипт, который добавляет имена выбранных файлов в историю команд.

Обратите внимание на табуляцию при редактировании данного файла, так как неправильный отступ может привести к ошибке при парсинге меню Midnight Commander.

4. Восстановление истории

После добавления файлов в историю, вы можете использовать комбинацию Ctrl + O, чтобы переключиться в терминал, и ввести команду history -r, чтобы обновить историю. Теперь вы сможете легко получить доступ к ранее добавленным именам файлов при помощи клавиши UP.

5. Альтернатива: Вывод имен файлов

Как альтернатива, вы можете использовать скрипт, который просто выводит строку с именами файлов на консоль. Таким образом, вы сможете скопировать и вставить их вручную. Пример команды для вывода:

+ t t
p       Печать выбранных файлов в подпроцесс
    set %t
    while [ -n "$1" ]; do
      STR="$STR \"$1\""
      shift
    done
    echo "$STR"

Заключение

Midnight Commander предлагает несколько практичных решений для отправки имён выбранных файлов в консоль, что может значительно облегчить вашу работу. Использование сочетаний клавиш или настройка собственного меню открывает множество возможностей для пользователей, позволяя оптимизировать рабочий процесс. Выбор подходящего способа зависит от ваших потребностей и предпочтений, а предложенные решения могут помочь значительно ускорить выполнение задач.

Оцените материал
Добавить комментарий

Капча загружается...