Можно ли указать путь, в котором имя каталога является переменной?

Задав этот вопрос на mpv player и dvds, я наткнулся на более общий вопрос: можно ли вообще указать путь, в котором одно из имен каталогов является переменной?

Предположим, что я хочу выполнить файл с помощью команды. Исполняемый файл находится в /dir1/dir2/dir3/ , но имя dir2 является переменной, хотя оно всегда будет содержать dir3 (аналогично VIDEO_TS , который всегда похож на /media/username/NAME-OF-DVD/VIDEO_TS/ while NAME-OF-DVD меняется).

Если я хочу выполнить этот файл с помощью команды, я должен указать путь. Можно ли использовать такую ​​команду (с путём, в котором одно имя каталога может быть «общим»)?

  • Последствия наличия переменной переменной $ PATH?
  • Обои для рабочего стола в XFCE4
  • Как найти / исправить ошибку в пути
  • Отобразить недопустимые пути к допустимым путям файлов
  • Получить путь к файлу каталогов, содержащих определенный тип файла в алфавитном / цифровом порядке
  • Почему так много программ живут в PATH?
  • Bash: путь или ссылка на строку в файле?
  • Абсолютный путь к исполняемой программе
  • 2 Solutions collect form web for “Можно ли указать путь, в котором имя каталога является переменной?”

    Bash может использовать globbing. Globbing позволяет указать шаблон, который будет соответствовать нескольким значениям. Он работает аналогично REGEX, но важно отметить, что они не совпадают.

    • *(pattern) соответствует шаблону 0 или более раз
    • ?(pattern) соответствует шаблону 0 или 1 раз
    • +(pattern) соответствует шаблону 1 или более раз
    • [ ] может соответствовать значению, содержащемуся внутри, включая [az] для сквозного z
    • ( | ) может соответствовать значениям по обе стороны от трубы

    Если вы не ставите шаблон, шаблон действует как шаблон.

    Таким образом, путь, подобный /dir1/dir2/dir3/ может быть представлен как:

    • /dir1/*/dir3/
    • /dir1/dir*/dir3/
    • /dir1/*(dir2|otherdir)/dir3/
    • /dir1/dir*[1-99]/dir3/

    Для получения дополнительной информации ознакомьтесь с этой ссылкой: http://mywiki.wooledge.org/glob

    или этот: http://www.linuxjournal.com/content/bash-extended-globbing

    до тех пор, пока меняющийся уровень каталога является единственным каталогом, что я имею в виду, если у вас есть /dir1/dirX/dir3/dir4 а часть dirX не изменяется, как dirX/dirY/dirZ но может быть только одним из dirX , dirY или dirZ , то вы можете ссылаться на /dir1/dirX/dir3/dir4 как /dir1/*/dir3/dir4

    В вашем случае mpv /media/username/*/VIDEO_TS должен работать, хотя, поскольку названия DVD обычно содержат пробелы, я предлагаю включить весь путь между двойными кавычками, такими как "/media/username/*/VIDEO_TS"

    Interesting Posts

    Отображение типа символа новой строки в Emacs

    Переименование файлов на основе контрольной суммы

    Услуги описательных сообщений

    Сканер Fujitsu ScanSnap IX500 перестает работать, возможно, при обновлении с Debian jessie, чтобы растянуть

    удаленный дисплей X не открывается

    Emacs Mh выбирает абзац + дополнительную строку

    Рекомендации по замене кластера GFS?

    Запуск нескольких программ в фоновом режиме и проверка их возвращаемого значения

    Объем «boot» имеет только 0-байтовый дисковый объем, оставшийся

    Объедините два файла по очереди с символом тройного канала разделителя «|||»

    Как я могу управлять сервером, если отключен USB?

    Почему мой список не преобразуется в массив в сценарии запуска .zshrc?

    Тестирование, из сценария, если звуковые устройства молчат?

    Понимание rc.local и устранения неполадок

    Почему это не работает, когда я добавляю его к текущему запуску sed?

    Linux и Unix - лучшая ОС в мире.