ファイルtarアーカイブを別のディレクトリに抽出します。

ファイルtarアーカイブを別のディレクトリに抽出します。

.tar.gz次のファイルを含めることができるファイルがあります。

folder1/folder2/folder3/imp_folder1/file11.jpg
folder1/folder2/folder3/imp_folder1/file12.jpg
folder1/folder2/folder3/imp_folder2/file21.jpg
folder1/folder2/folder3/imp_folder3/file31.jpg
...
...

次のディレクトリに抽出したいと思います。

/new_folder1/new_folder2/imp_folder1/file11.jpg
/new_folder1/new_folder2/imp_folder1/file12.jpg
/new_folder1/new_folder2/imp_folder2/file21.jpg
/new_folder1/new_folder2/imp_folder3/file31.jpg
...
...

基本的folder1/folder2/folder3/に交換する必要があります/new_folder1/new_folder2/

何百または何千ものファイルになるので、これを行う最速の方法は何ですか?

ベストアンサー1

コメントには可能な回答へのリンクがありますが、他のアプローチを提案したいと思います。元のディレクトリツリーと同じ場所にディレクトリツリーを作成し、置き換えたいパスfolder1/folder2/folder3()を新しい場所(/new_folder1/new_folder2)に関連付けることができます。

cd /tmp
mkdir -p folder1/folder2
ln -s /new_folder1/new_folder2 folder1/folder2/folder3

--keep-directory-symlinkその後、フラグ(バージョン1.27以降)を追加してアーカイブを抽出できます。

tar --keep-directory-symlink -zxvf tarball.tar.gz

おすすめ記事