3

日付を含む tar ファイルに名前を付けたいのですが、うまくいきません。より良い説明については、以下のコードを参照してください。

date=$( date +%Y-%m-%d_%H:%M:%S )
tar -czf ${imageName-$date}.tar.gz ${imageBasename} 2>>$ERRORLOG

イメージ名は、次のようなイメージの名前を格納する変数です。win-ser-rdp

私も試してみました:

tar -czf ${imageName}:${date}.tar.gz ${imageBasename} 2>>$ERRORLOG

うまくいきませんでした:(

すべての助けに感謝します:D

4

3 に答える 3

14

問題は、:GNU tar によって特別に扱われるファイル名にあります。

という名前のディレクトリがある自分のシステムでは、次のfooようになります。

$ tar zcf foo:42.tar.gz foo
tar (child): Cannot connect to foo: resolve failed
tar: Child returned status 128
tar: Error is not recoverable: exiting now
$ 

文字をエスケープする方法はないようですが:、オプションを使用して特別な解釈を禁止することができ--force-localます (これを指摘してくれた Daniel Serodio に感謝します)。

ファイル名にコロン文字を使用することは合法ですが、通常は悪い考えです。たとえば、おそらくscp.

GNU tar マニュアルの関連セクションを次に示します(info tarセクション 6.1 に移動します)。

リモート マシンに接続されたデバイス上のアーカイブ ファイルを指定するには、次のコマンドを使用します。

--file=hostname:/dev/file-name

tar は、可能であればリモート接続を設定し、ユーザー名とパスワードの入力を求めます。を使用する--file=@hostname:/dev/file-nameと、tar はユーザー名をリモート マシンのユーザー名として使用して、リモート接続をセットアップしようとします。

タイムスタンプを含むファイル名を作成するときは、通常、YYYY-MM-DD-HHMMSS

$(date +%F-%H%M%S)

または、必要に応じて使用できYYYY-MM-DD_HH_MM_SSます

$(date +%F-%H_%M_%S)
于 2013-10-16T15:11:31.597 に答える