私はこのコマンドを5GBアーカイブ
tar -zxvf archive.tar.gz /folder/in/archive
これは正しいやり方でしょうか? コマンドライン出力がなく、永遠に時間がかかるようです...
答え1
tar
相対パスを保存するデフォルトでGNU tar では、絶対パスを保存しようとすると次のように表示されます。
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
特定のフォルダーを抽出する必要がある場合は、tar ファイルの内容を確認してください。
tar -tvf foo.tar
foo.tar
正確なファイル名をメモしてください。私のファイルの場合、/home/foo/bar
次のようにして抽出できます。
tar -xvf foo.tar home/foo/bar # Note: no leading slash
つまり、あなたが投稿した方法は (必ずしも) 正しい方法ではありません。先頭のスラッシュを省略する必要があります。絶対パスをシミュレートしたい場合は、cd /
まずスーパーユーザーであることを確認してください。また、次の方法でも同じことができます:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
パスを相対パスに変換するのには、非常に明白で正当な理由がありますtar
。 1 つは、アーカイブを元のソース以外の場所に復元できることです。 もう 1 つは、セキュリティです。 アーカイブを抽出し、そのファイルが現在の作業ディレクトリに表示されることを期待して、誤って他の場所にあるシステム ファイル (または自分の作業) を上書きする可能性があります。
注:-P
オプションを使用する場合、tar
意思アーカイブの絶対パス。したがって、抽出する前に大きなアーカイブの内容を必ず確認するようにしてください。