在 tar 和 tar.gz 中追加或删除文件

Moh*_*ghi 1 gzip tar bzip2

我想将文件附加到foo.tar

tar -rvf foo.tar IMG_1807.MOV
Run Code Online (Sandbox Code Playgroud)

这可行,但是当我想删除文件时:

tar -dvf foo.tar IMG_1807.MOV
Run Code Online (Sandbox Code Playgroud)

不起作用。它显示了输出:

Terminal:~/Desktop$ tar -dvf foo.tar IMG_1807.MOV 
IMG_1807.MOV
Terminal:~/Desktop$ tar -tvf foo.tar
-rw-rw-r-- user/user    33084363 2018-12-19 03:02 IMG_1807.MOV
Run Code Online (Sandbox Code Playgroud)

但不会删除任何内容。我应该怎么办?

其次,如何在file.tar.gzfile.tar.bz2或中添加或删除文件file.tar.xz?是否有任何命令或者我应该总是再次解压和压缩?


编辑:

第三:如何从压缩文件中提取特定文件?或者如何从特定位置的 tar 中提取?这不起作用:

 tar -xvf foo.tar IMG_1807.MOV -C /path/to/destination
Run Code Online (Sandbox Code Playgroud)

pLu*_*umo 5

-d不是删除而是diff

man tar

 -d, --diff, --compare
       find differences between archive and file system
Run Code Online (Sandbox Code Playgroud)

使用--delete

tar --delete -vf foo.tar IMG_1807.MOV
Run Code Online (Sandbox Code Playgroud)

您无法更新tar.gz文件,请参阅


关于您的问题如何提取到特定位置:

您必须遵循正确的命令行顺序。-C作为一个选项之前[pathname]。请参阅man tar获取更多信息。以下作品:

 -d, --diff, --compare
       find differences between archive and file system
Run Code Online (Sandbox Code Playgroud)