tar 명령이 쉘 스크립트에서 오류를 생성합니다.

tar 명령이 쉘 스크립트에서 오류를 생성합니다.

(활성화한 set -x) 쉘 스크립트에서 tar 볼을 만들려고 하는데 다음 오류가 발생합니다.

+ cd /home5/mysite/public_html
+ TAR_DUMP=gypo_2012-02-18-03:51:15.tar.gz
+ echo 'Tar name: gypo_2012-02-18-03:51:15.tar.gz'
Tar name: gypo_2012-02-18-03:51:15.tar.gz
+ tar -cvzf gypo_2012-02-18-03:51:15.tar.gz gypo
...
tar: gypo_2012-02-18-03\:44\:04.tar.gz: Cannot open: Input/output error
tar: Error is not recoverable: exiting now
...

스크립트는 다음과 같습니다

NOW=$(date +"%Y-%m-%d-%T")

# TAR

cd $HOME/public_html
TAR_DUMP="gypo_$NOW.tar.gz"
echo "Tar name: $TAR_DUMP"
tar -cvzf $TAR_DUMP gypo
# mv -t $DEST $TAR_DUMP

tar에서 이 오류가 발생하는 이유와 해결 방법은 무엇입니까?

답변1

:파일 이름이 헷갈립니다 tar. 적어도 coreutils버전의 경우 스위치 tar--file다음 형식의 인수를 사용할 수 있습니다.

hostname:/remote/file/name

그래서 나는 tar그것이 당신이 의도한 것과 다른 방식으로 파일 이름을 해석하려고 시도하고 있다고 추측합니다.

파일 이름 앞에 붙이 ./거나 전체 경로를 지정하면 문제가 해결됩니다.

TAR_DUMP="./gypo_$NOW.tar.gz"
echo "Tar name: $TAR_DUMP"
tar -cvzf $TAR_DUMP gypo

--force-local또 다른 수정 방법은 스위치를 추가하는 것입니다 .

--force-local

원격 테이프 드라이브 이름처럼 보이더라도 `tar'가 --file의 파일 이름을 로컬 파일로 해석하도록 강제합니다.

관련 정보