복원 백업 스크립트를 수행하고 있는데 분할 파일을 결합하려고 하면 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"
나는 *를 탈출하지 않고 "" 밖에 두었습니다. 답변해 주셔서 감사합니다. 그는 내가 실수를 찾는 데 도움을 주었습니다.