一つあるここにも同様の質問があります。
正しく理解した場合、最初の答えはフォルダの内容を抽出できず、フォルダ内の特定のファイルのみを抽出できることです。
2番目の答えはこの--directory
オプションを使用します。これは私が望むように見えますが、アーカイブ内のディレクトリからファイルを抽出するのではなく、optionsに表示されているディレクトリにファイルを出力します--directory
。
フォルダをtarにすると、ルートディレクトリから始まるフルパスが含まれます。だからそれはhome/ole/folder/thestuff
。folder/thestuff
現在あるフォルダに解凍したいのですがhome/ole
。
アイデア?
答え1
正しく理解した場合、最初の答えはフォルダの内容を抽出できず、フォルダ内の特定のファイルのみを抽出できることです。
いいえ、相対ファイル名と絶対ファイル名について話しています。/some/path
間の違いsome/path
tarfileの内容を表示しますtar tf file
。/path/to/folder
としてリストされている場合は、フォルダを指定できませんpath/to/folder
。
抽出する(正しい)フォルダを提供するのに問題はありません。
- 抽出するファイルのリスト
tar tf file.tar path/to/folder
- ファイルを解凍する(現在のディレクトリに)
tar xf file.tar path/to/folder
たとえば、
確認すべき事項:
$ tar tf ../test.tar
a/
a/3
a/2
a/1
b/
b/3
b/2
b/1
aフォルダを解凍する
$ tar xf ../test.tar a
それが何を抽出するかを見てください
$ find .
.
./a
./a/3
./a/2
./a/1
答え2
私の場合は、次のようにすることができます。
tar -xvzf archive.tar.gz --strip-comComponents=2
これにより、home/ole
パスからそのパスが削除され、アーカイブのそのパスの下のすべてのエントリが現在のディレクトリに抽出されます。