問題は、:
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)