
.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