Bash 파일 이름 확장에서 점을 이스케이프 처리할 이유가 있나요?

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}

답변1

차이 없음. 요점 .특수 쉘 문자인용이 필요합니다. 백슬래시가 포함됩니다.견적 삭제. 이는 .NET 쉘뿐만 아니라 대부분의 쉘에서도 마찬가지입니다 bash.

답변2

@jw013의 이미 해결된 질문에 대한 답변은 아니지만 \여기서 및 가 중복되는 동안 {}뭔가 빠졌습니다. 변수를 인용해야 하며 --표시된 옵션의 끝이 누락되었습니다.

cp -v -- "$LOG_DIR/$APPLICATION".*.log "$ARCHIVED_LOG_DIR"

관련 정보