Открыть папку в терминале с помощью сценария Nautilus в Linux

Базовый сценарий: выделил папку или файл — и сразу gnome-terminal в нужном каталоге. Если ничего не выбрано — открываю текущую папку.

Куда положить

Можно просто скачать скрипт Nautilus ниже и положить по этому пути. Скрипты Nautilus живут здесь:

bash
~/.local/share/nautilus/scripts/

В свойствах файла включаю «Исполняемый как приложение» — без этого пункта в меню не будет.

Или через командную строку

  1. Ставлю зависимости

    Нужен gnome-terminal. notify-send необязателен, но удобен.

    bash
    sudo apt install -y gnome-terminal libnotify-bin
  2. Создаю файл

    Имя файла — то, что будет в меню: Открыть папку в терминале.

    bash
    mkdir -p ~/.local/share/nautilus/scripts
    touch ~/.local/share/nautilus/scripts/"Открыть папку в терминале"
  3. Даю права на исполнение

    Без бита исполнения Nautilus скрипт не покажет.

    bash
    chmod +x ~/.local/share/nautilus/scripts/"Открыть папку в терминале"
  4. Открываю в редакторе

    xdg-open поднимает графический редактор, не nano.

    bash
    xdg-open ~/.local/share/nautilus/scripts/"Открыть папку в терминале"
  5. Вставляю код и пользуюсь

    Вставляю код ниже и пользуюсь: выделил файлы → ПКМ → «Сценарии». Чтобы меню подхватило файл:

    bash
    nautilus -q

Код

bash
#!/bin/bash
# Исправленная версия - открывает ВЫДЕЛЕННУЮ папку в терминале

# Отладка (можно закомментировать)
# echo "=== ОТЛАДКА ===" > /tmp/nautilus_debug.log
# echo "NAUTILUS_SCRIPT_SELECTED_FILE_PATHS: $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" >> /tmp/nautilus_debug.log
# echo "NAUTILUS_SCRIPT_CURRENT_URI: $NAUTILUS_SCRIPT_CURRENT_URI" >> /tmp/nautilus_debug.log

# Получаем путь к выбранной папке/файлу
SELECTED_PATH="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

# Если ничего не выбрано (например, вызвали из пустого места)
if [ -z "$SELECTED_PATH" ]; then
    # Используем текущую папку
    SELECTED_PATH="$NAUTILUS_SCRIPT_CURRENT_URI"
    # Убираем префикс file://
    SELECTED_PATH=$(echo "$SELECTED_PATH" | sed 's/file:////')
fi

# Убираем возможные проблемы с пробелами и спецсимволами
SELECTED_PATH=$(echo "$SELECTED_PATH" | sed 's/ / /g')

# Проверяем, что путь существует
if [ ! -e "$SELECTED_PATH" ]; then
    echo "Ошибка: Путь '$SELECTED_PATH' не существует" >&2
    exit 1
fi

# Определяем целевую директорию
if [ -f "$SELECTED_PATH" ]; then
    # Если выбран файл - открываем терминал в папке с файлом
    TARGET_DIR="$(dirname "$SELECTED_PATH")"
else
    # Если выбрана папка - открываем в ней
    TARGET_DIR="$SELECTED_PATH"
fi

# Открываем терминал
gnome-terminal --working-directory="$TARGET_DIR"

# Показываем уведомление (опционально)
if command -v notify-send &> /dev/null; then
    notify-send "Терминал открыт" "в папке: $(basename "$TARGET_DIR")"
fi

exit 0
← К списку статей

Поделиться

Комментарии

Пока нет комментариев — можете написать первый.

Оставить комментарий

Войти с помощью

или оставьте комментарий как гость

Отправка защищена сервисом Yandex SmartCaptcha. Подробности — в политике конфиденциальности.