Есть ли причина избежать точки в расширении имени bash?

Я работаю с скриптом bash, который написал кто-то другой, и я вижу следующую строку:

cp -v ${LOG_DIR}/${APPLICATION}\.*.log ${ARCHIVED_LOG_DIR} 

Файлы, с которыми он работает, имеют все имена:

EXAMPLE.command1.log EXAMPLE.command2.log

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

 cp -v ${LOG_DIR}/${APPLICATION}.*.log ${ARCHIVED_LOG_DIR} 

  • Сценарий Bash не может найти команду при цитировании
  • Quotes exercise - как сделать ssh внутри ssh во время запуска sql внутри второго ssh?
  • Подголовник внутри кавычек
  • find: отсутствует аргумент `-exec 'в Cygwin
  • Xargs с несколькими записями аргументов - используйте аргумент переменной окружения после sh -c '...'
  • Как сказать grep, чтобы соответствовать специальному символу в начале каждого слова
  • Как обрабатывать специальные символы, такие как скобка в сценарии bash?
  • Использование обратной косой черты в разных командах
  • 2 Solutions collect form web for “Есть ли причина избежать точки в расширении имени bash?”

    Нет никакой разницы. Точка . не является специальным символом оболочки, который нуждается в цитировании, а обратная косая черта просто удаляется во время удаления цитаты . Это верно в большинстве оболочек, а не только в bash .

    Не ответ на ваш вопрос, который уже был рассмотрен с помощью @ jw013, но учтите, что в то время как \ и {} здесь лишние, есть несколько недостающих вещей. Как и переменные, нужно указывать, а -- пометить конец опций отсутствует.

     cp -v -- "$LOG_DIR/$APPLICATION".*.log "$ARCHIVED_LOG_DIR" 
    Linux и Unix - лучшая ОС в мире.