繁体   English   中英

创建目录的tar.gz并清理除文件以外的目录?

[英]create a tar.gz of a directory and clean up the directory except a file?

我想知道tar(1.15.1,Linux系统)在为它创建脚本之前是否已经有类似的东西。

我想创建一个给定dir/dir.tar.gz dir/包含一个特定的dir/myfile.gz 我想命令做两件具体的事情:

  1. 保留dir/myfile.gz
  2. dir.tar.gz完成后删除dir/所有其他内容。

例如:

tree -if .
.
./dir
./dir/dir2
./dir/dir2/file3
./dir/file1
./dir/file2
./dir/myfile.gz

2 directories, 4 files

我想tar命令的结果是:

tree -if  
.
./dir
./dir/myfile.gz
./dir.tar.gz

1 directory, 2 files

我已经阅读了--delete--extract选项,但我不确定如何在一个命令中应用它们。 有任何想法吗?

这应该工作:

tar -zcvf dir.tar.gz --exclude="*.gz" ./dir/. && find ./dir/. ! -name "*.gz" -exec rm -rf {} +

测试:

$ tree -if .
.
./dir
./dir/dir2
./dir/dir2/file3
./dir/file1
./dir/file2
./dir/myfile.gz

2 directories, 4 files

$ tar -zcvf dir.tar.gz --exclude="*.gz" ./dir/. && find ./dir/. ! -name "*.gz" -exec rm -rf {} +
./dir/./
./dir/./file1
./dir/./dir2/
./dir/./dir2/file3
./dir/./file2
rm: cannot remove `.' or `..'

$ tree -if .
.
./dir
./dir/myfile.gz
./dir.tar.gz

1 directory, 2 files

您可能还对tardy感兴趣,这是一个tar后处理器(过滤器),因此您可以在tar存档上操作(即使在运行中)并删除有问题的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM