I have a tar.gz-file with the following structure:
folder1/img.gif folder2/img2.gif folder3/img3.gif
I want to extract the image files without the folder hierarchy so the extracted result looks like:
/img.gif /img2.gif /img3.gif
I need to do this with a combination of Unix and PHP. Here is what I have so far, it works to extract them to the specified directory but keeps the folder hierarchy:
exec('gtar --keep-newer-files -xzf images.tgz -C /home/user/public_html/images/',$ret);
You can use the --strip-components option of tar.
--strip-components count (x mode only) Remove the specified number of leading path ele- ments. Pathnames with fewer elements will be silently skipped. Note that the pathname is edited after checking inclusion/exclu- sion patterns but before security checks.
I create a tar file with a similar structure to yours:
$tar -tf tarfolder.tar tarfolder/ tarfolder/file.a tarfolder/file.b $ls -la file.* ls: file.*: No such file or directory
Then extracted by doing:
$tar -xf tarfolder.tar --strip-components 1 $ls -la file.* -rw-r--r-- 1 ericgorr wheel 0 Jan 12 12:33 file.a -rw-r--r-- 1 ericgorr wheel 0 Jan 12 12:33 file.b
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With