이전 버전을 새 버전으로 복사할 수 없습니다.

이전 버전을 새 버전으로 복사할 수 없습니다.
# in bash
shopt -s extglob
cd /oc/txa/db/
dirs=$(echo $(ls [1-9]*([0-9])_[0-9] | sort -rn | head -n 2))
# if there are no other files and directories you can use "ls |" in the line above
newer="${dirs% *}"
prior="${dirs#* }"
test -z "$newer" && exit 1
test -z "$prior" && exit 1
cp -p "${prior}/mit.sas" "$newer"/

결과: cp: cannot access 15_1:/mit.sas: No such file or directory.

이 스크립트에는 문제가 있습니다 15_1:/mit.sas. 실제로는 15_1/mit.sas이 스크립트를 빠르게 살펴보시기 바랍니다. 그리고 정확한 스크립트를 어디에서 변경해야 하는지 제안해 보세요. ksh에서 스크립트를 작성할 수 있나요?

답변1

콜론은 명령에서 나오 므로 ls대신 사용할 경우 /bin/ls -d이를 제거해야 합니다 .

# in bash
shopt -s extglob
cd /oc/txa/db/
dirs=$(echo $(/bin/ls -d [1-9]*([0-9])_[0-9] | sort -rn | head -n 2))
# if there are no other files and directories you can use "ls |" in the line above
newer="${dirs% *}"
prior="${dirs#* }"
test -z "$newer" && exit 1
test -z "$prior" && exit 1
cp -p "${prior}/mit.sas" "$newer"/

답변2

# in bash
shopt -s extglob
cd /oc/txa/db/
dirs=$(ls -d [1-9]*([0-9])_[0-9] | sort -rn | head -n 2)
# if there are no other files and directories you can use "ls |" in the line above
newer="$(echo $dirs | head -n 1)"
prior="$(echo $dirs | tail -n 1)"
test -z "$newer" && exit 1
test -z "$prior" && exit 1
cp -p "${prior}/mit.sas" "$newer"/

이렇게 하면 필요한 작업을 수행할 수 있습니다(적어도 아직 많은 정보를 제공하지 않은 것 같습니다...).

관련 정보