Linux/Unix:tar包删除(删除)文件

时间:2020-01-09 10:45:55  来源:igfitidea点击:

如何在Unix/Linux之类的操作系统下从tar包中删除单个文件?
您可以使用以下语法从tar包中删除文件:

tar --delete -f example.tar filename

示例:从tar包中删除文件

首先,使用tar命令创建一个用于测试目的的tar包,执行:

# cd /tmp
# tar -cvf foo.tar /etc

要显示文件列表,请执行:

# tar -tvf foo.tar

或者

# tar -tvf foo.tar | grep 'etc/resolv.conf'

输出示例:

-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~

要从名为foo.tar的tar包中删除名为etc/resolv.conf的文件,请执行:

# tar --delete -f foo.tar etc/resolv.conf

验证文件已从tar包中删除:

# tar -tvf foo.tar | grep 'etc/resolv.conf'

输出示例:

-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~

要删除所有etc/resolv.conf文件,请使用通配符选择项。
它将启用模式匹配:

# tar --wildcards --delete -f foo.tar 'etc/resolv.conf*'

使用以下命令验证从tar包中删除的文件:

# tar -tvf foo.tar | grep 'etc/resolv.conf'

请注意,不允许您从压缩档案(例如tar.gz或者tar.bz2)中修改或者删除文件。