ksh는 공백이 있는 위치에서 cp 작업을 수행할 수 없습니까?

ksh는 공백이 있는 위치에서 cp 작업을 수행할 수 없습니까?

다음을 수행하려고 하는데 이 명령에 대한 메시지가 ksh계속 나타납니다 .cannot statcp

JMX_ROOT=/bfs-build/build-info/mep_mainline-Linux.latest/core/mainline/automation

SMOKE_JMX_LOCATION=$JMX_ROOT/"Smoke Set"/*.*

cp $SMOKE_JMX_LOCATION /var/tmp/tempor

어떤 아이디어가 있나요? 나는 성공하지 못한 채 다양한 변수에 따옴표를 넣으려고 노력했습니다.

답변1

cp "$SMOKE_JMX_LOCATION" /var/tmp/tempor
#--^-------------------^

편집: 나는 와일드카드를 실제로 눈치채지 못했습니다. 예, 이를 참조하면 확장이 방지됩니다. 변수에 넣어야 하나요? 이것은 확실히 작동합니다:

cp $JMX_ROOT/"Smoke Set"/*.* /var/tmp/tempor

답변2

SMOKE_JMX_LOCATION="$(echo $JMX_ROOT/"Smoke Set"/*.*)"
cp "$SMOKE_JMX_LOCATION" /var/tmp/tempor

답변3

대체 필드 구분 기호를 사용하여 디렉터리 이름의 공백을 해결할 수 있습니다.

JMX_ROOT=/bfs-build/build-info/mep_mainline-Linux.latest/core/mainline/automation

OLD_IFS="$IFS"
IFS=$'\n'

SMOKE_JMX_LOCATION="${JMX_ROOT}/Smoke Set"

cp ${SMOKE_JMX_LOCATION}/*.* /var/tmp/tempor

IFS=$OLD_IFS

관련 정보