tar 打包 过滤指定目录 -- 已亲测

本文讲述了如何在使用tar命令打包Presto服务时,正确地排除logs目录以及其他指定的子目录和文件,强调了exclude选项的使用方法和注意事项,即在路径中不要包含/,以防止意外打包。
摘要由CSDN通过智能技术生成

        很多情况下,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除其中1、2个目录或文件

     

我们打包presto服务,我们需要去掉logs目录

tar -zcvf presto.tar.gz --exclude=presto/logs presto

如果要排除多个目录,增加 --exclude 即可,如下命令排除logs和oldlib两个目录及文件mylib.tar.gz:

tar -zcvf presto.tar.gz --exclude=presto/logs --exclude=presto/oldlib --exclude=presto/mylib.tar.gz presto

这里要注意一个点,在我们使用tar 的–exclude 命令排除打包的时候,不能加“/”,否则还是会把logs目录以及其下的文件打包进去。

错误写法:

tar -zcvf presto.tar.gz --exclude=presto/logs/ presto

正确写法:

tar -zcvf presto.tar.gz --exclude=presto/logs presto   已验证

### 回答1: .gz格式的文件? 可以使用gradle的tar任务来打包压缩成tar.gz格式的文件。具体操作可以参考以下代码: ```groovy task packageTar(type: Tar) { compression = Compression.GZIP archiveName = "example.tar.gz" from('src/main/resources') { include '**/*.properties' } from('src/main/java') { include '**/*.java' } } ``` 这个任务会将src/main/resources和src/main/java目录下的文件打包成example.tar.gz文件。其中compression属性指定了压缩格式,archiveName属性指定打包后的文件名,from方法指定了需要打包的文件路径和文件过滤规则。 ### 回答2: 在使用Gradle打包并压缩成tar文件时,我们可以使用Gradle的插件和任务来实现。下面是一种常见的实现方式。 首先,在你的项目的build.gradle文件中添加如下内容: ```groovy plugins { id 'java' id 'application' } apply plugin: 'tar' apply plugin: 'org.zeroturnaround.gradle.jacoco' // 设置输出的tar文件名和路径 tar { compression = Compression.GZIP archiveName = 'myApp.tar.gz' destinationDirectory = file("$buildDir/distributions") } task createTar(type: Tar) { from('src/main/resources') // 将资源文件添加到tar中 from(jar.archivePath) // 将打包好的jar文件添加到tar中 // 添加需要打包的其他文件或目录 from('data') { include '**/*.txt' } } // 将创建tar文件的任务添加到build任务的依赖中 build.dependsOn createTar ``` 这段代码中,我们首先引入了`tar`插件,这个插件提供了压缩文件的功能。然后,通过定义`tar`块来配置tar文件的相关设置,比如压缩方式、输出文件名和路径等。 接下来,我们定义了一个名为`createTar`的任务,这个任务使用`Tar`实现类,并指定了从哪些文件或目录中将文件添加到tar中。例如,我们从`src/main/resources`中添加了资源文件,从`jar.archivePath`中添加了打包好的jar文件,以及从`data`目录中添加了所有的`.txt`文件。 最后,我们将`createTar`任务添加到`build`任务的依赖中,这样在执行`build`任务时就会自动执行`createTar`任务,从而生成tar文件。 运行`gradle build`命令即可执行打包压缩操作,并在`build/distributions`目录下生成一个名为`myApp.tar.gz`的tar文件。 ### 回答3: 在Gradle中,可以使用Tar任务来将项目打包并压缩为tar文件。下面是一个简单的示例: ```groovy task createTar(type: Tar) { compression = Compression.GZIP // 设置压缩方式为GZIP // 设置tar文件的输出路径和文件名 archiveFileName = "output.tar.gz" destinationDirectory = file("$buildDir") // 将需要打包的文件和文件夹添加到tar任务中 from fileTree(dir: 'src/main', exclude: 'test') // 添加src/main目录下的文件和文件夹(排除test目录) include 'README.md' // 添加README.md文件 // 设置tar文件的元数据信息 metadata { // 添加文件权限 fileMode = 0644 dirMode = 0755 // 添加文件的用户和组 // 当前示例中使用默认的用户和组 user = 'root' group = 'root' } } ``` 执行以上配置后,可以通过运行`gradle createTar`命令来执行Tar任务。执行完成后,输出的tar文件将保存在build目录中。在示例中,输出的文件名为`output.tar.gz`。 需要注意的是,在执行Tar任务之前,可能需要先将Gradle项目构建为可运行的jar或war文件,然后再进行打包压缩。可以使用`gradle assemble`命令构建项目,将生成的jar或war文件作为输入文件传递给Tar任务。 希望以上回答对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值