How do I delete or remove a single file from within a tar ball under Linux operating systems?
You can use the following syntax to delete a file from a tar ball:
tar --delete -f example.tar filename
Example: Delete a File From a Tar Ball
First, create a tar ball for testing purpose using the tar command, enter:
# cd /tmp
# tar -cvf foo.tar /etc
To display a list of files, enter:
# tar -tvf foo.tar
OR
# tar -tvf foo.tar | grep 'etc/resolv.conf'
Sample outputs:
-rw-r--r-- root/root 30 2011-09-20 17:51 etc/resolv.conf.tmp -rw-r--r-- root/root 185 2011-07-27 20:35 etc/resolv.conf -rw-r--r-- root/root 185 2011-07-27 20:35 etc/resolv.conf.pppd-backup.ppp0 -rw-r--r-- root/root 51 2011-07-12 03:14 etc/resolv.conf~
To delete a file called ‘etc/resolv.conf’ from a tar ball called foo.tar, enter:
# tar --delete -f foo.tar etc/resolv.conf
Verify that file has been deleted from the tar ball:
# tar -tvf foo.tar | grep 'etc/resolv.conf'
Sample outputs:
-rw-r--r-- root/root 30 2011-09-20 17:51 etc/resolv.conf.tmp -rw-r--r-- root/root 185 2011-07-27 20:35 etc/resolv.conf.pppd-backup.ppp0 -rw-r--r-- root/root 51 2011-07-12 03:14 etc/resolv.conf~
To delete all etc/resolv.conf files, use the –wildcards opitons. It will enable pattern matching:
# tar --wildcards --delete -f foo.tar 'etc/resolv.conf*'
Use the following command to verify that files deleted from the tar ball:
# tar -tvf foo.tar | grep 'etc/resolv.conf'
Please note that you are not allowed to modify or delete files from compressed archives such as tar.gz or tar.bz2.
Originally posted 2016-01-11 05:53:01.