날짜가 날짜 인 타르 파일?


16

날짜와 시간을 이름으로 파일을 tar하고 gzip으로 압축하려고합니다.

date=$(date '+%d-%m-%Y_%H:%M:%S');    
tar -zcf "$date".tar.gz repo/bin/

그러나 나는 돌아옵니다.

tar (child): Cannot connect to 17-08-2017_21: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now

여기서 정확히 무슨 일이 일어나고 어떻게 해결할 수 있습니까?

tar는 ip 인 것처럼 이름에 연결하려고합니까?


7
날짜에 대한 ISO 표준은 mm : 또는 SS YYYY-MM ISO 형식이다 +%FT%T에서 date구문의. 모호하지 않은 형식으로 날짜를 제공하는 것 외에도 멋지게 정렬됩니다!

GNU 날짜와 함께 @drewbenn도 : date --iso-8601=s(또한 시간대 오프셋을 추가합니다)
muru

2
콜론을 사용하지 않는 것이 좋습니다. 유사 20170818_122314하거나 유사한 것이 인식 및 / 또는 파싱하기에 충분히 쉽다. 콜론은 다양한 상황에서 문제를 일으 킵니다 (방금 발견했습니다).
Rolf

답변:


31

네 그렇습니다. 적어도 GNU tar의 경우 문서에 다음과 같이 나와 있습니다.

아카이브 파일 이름에 콜론 ( :)이 포함되어 있으면 다른 시스템의 파일 인 것으로 간주됩니다. 아카이브 파일이 user@host:file인 경우 파일 은 호스트에서 사용됩니다 호스트 . rsh 프로그램을 사용하여 사용자 이름이 user 인 원격 호스트에 액세스 합니다 . 사용자 이름을 생략하면 ( @기호 와 함께 ) 사용자 이름이 사용됩니다. 이것은 정상적인 rsh 동작입니다.

또한 해결 방법을 제공합니다.

--force-local
      Archive file is local even if it has a colon.

5
더 짧은 해결 방법 : tar zcf ./"$date".tar.gz ...주요 경로 지정은 타르를 일반 파일로 취급하는 것 같습니다
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.