名前に日付を含むtarファイル?


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標準は、 YYYY-MM-DDTHHです:mm:ssの、または+%FT%Tdateの構文。日付を明確な形式で提供することに加えて、うまく並べ替えられます!

@drewbennとGNU日付、date --iso-8601=s(ただし、タイムゾーンオフセットも追加されます)
-muru

2
コロンの使用はお勧めしません。20170818_122314似たようなものは、認識および/または解析するのに十分簡単です。コロンはさまざまな状況で問題を引き起こします(あなたが発見したばかりです)。
ロルフ

回答:


31

はい、そうです。少なくともGNU tarについては、ドキュメントには次のように書かれています。

アーカイブファイル名にコロン(:)が含まれている場合、それは別のマシン上のファイルであると見なされます。アーカイブファイルがある場合はuser@host:file、そのファイルは、ホスト上で使用されているホスト。ユーザー名userを使用して、rshプログラムを使用してリモートホストにアクセスします。ユーザ名が(一緒に省略された場合@の符号)、その後、自分のユーザー名が使用されます。(これは通常のrshの動作です。)

また、回避策も提供します。

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

5
回避策のtar zcf ./"$date".tar.gz ...
短縮
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.