스크립트에서 고양이를 실행할 때 고양이가 내 파일에 합류하지 않습니다.

스크립트에서 고양이를 실행할 때 고양이가 내 파일에 합류하지 않습니다.

복원 백업 스크립트를 수행하고 있는데 분할 파일을 결합하려고 하면 cat이 다음 오류를 인쇄합니다.

cat: fullbackup_mrbsNuevo_15_6_2016.tar.gz.*: No such file or directory

cat 명령을 실행하는 줄은 다음 줄입니다.

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."\* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

파일이 존재하고 해당 디렉토리에 있는지 확인했습니다. 또한 쉘에서 명령을 실행해 보았는데 잘 작동합니다.

내 스크립트에 어떤 문제가 있는지 모르겠습니다.

디렉토리에서 ls 명령을 실행하면 파일은 다음과 같습니다.

cisco@Paquito1:/tmp/backup$ ls -lah
total 7,1M
drwxr-xr-x 2 cisco cisco 4,0K 2016-06-18 12:01 .
drwxrwxrwt 5 root  root  4,0K 2016-06-18 10:10 ..
-rw-r--r-- 1 cisco cisco 5,0M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.aa
-rw-r--r-- 1 cisco cisco 2,1M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.ab

cat 명령을 실행하기 전에 /tmp/backup 디렉터리로 이동했습니다.

미리 감사드립니다.

답변1

Escape하면 안 됩니다 *. 이렇게 하면 쉘/배시가 확장된 파일 이름 대신 가비지 스타를 검색하게 되기 때문입니다.

노력하다

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

편집하다

P.S 인용하고 싶습니다.

cat ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz.* > ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz"

답변2

마지막으로 해결책은 다음과 같습니다.

cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"

나는 *를 탈출하지 않고 "" 밖에 두었습니다. 답변해 주셔서 감사합니다. 그는 내가 실수를 찾는 데 도움을 주었습니다.

관련 정보