web-dev-qa-db-ja.com

名前にコロンが含まれるアーカイブを抽出するtarコマンド

私はtar -zxvf plugin\:xyz.tgzそしてエラーを受け取りました:

rsh: Could not resolve hostname plugin: Name or service not known
tar: plugin\:thold-latest.tgz: Cannot open: Input/output error
tar: Error is not recoverable: exiting now

誰かが私を助けることができますか?

7
Dzung

次のことができます。

mv plugin\:xyz.tgz plugin-xyz.tgz
tar xvfp plugin-xyz.tgz

アーカイブ自体の名前はそれほど重要ではなく、ファイルはアーカイブ名に関係なく同じ場所に抽出されます。

0
Xenoactive

--force-localオプションを試してください:

tar -zxvf plugin:xyz.tgz --force-local

情報ページから

名前にコロンが含まれているファイルを使用する必要がある場合は、 `--force-local 'オプションを使用して、リモートテープドライブの動作を禁止できます。

27
csg

@csgによる答えは的を射ています。

ただし、別の方法は、アーカイブにファイル名ではなくパスを指定することです。これは、絶対パス、またはより単純に現在のディレクトリからの相対パスのいずれかです。

tar -zxvf ./plugin:xyz.tgz

これにより、tarは名前をローカルファイルとして解釈します。

4

Tarの絶対パスを使用します。

このような:

/ usr/bin/tar -xfプラグイン:thold-latest.tgz

「:」の前の部分はホスト名として解釈され、後の部分はファイルになります。 Ttは実行を試みます remsh 。しかし、タールの絶対パスでは、そうではありません。また、tarがシステムのどこにあるかわからない場合は、次のコマンドを実行します。

whereis tar

1
evan.bovie

ファイル名tarzxvf "blah:23.tar.gz"を囲むBanditの引用符の提案を試してください

最後の手段として、コマンドラインで、またはWinSCPやFileZillaなどのSFTP/SCPアプリケーションを介してファイルの名前を変更します。ローカルマシンでこれを実行して名前を変更したファイルを再アップロードするか、WinSCP/FileZillaでログインして右クリックします。リモート側でファイルを作成し、名前の変更を選択します。

0
Brendan