对于上一个问题,可不可以这样编写代码,tar -zcvf ddfdd.tar.gz -C /bigdata/test/ *
时间: 2024-01-01 19:04:00 浏览: 125
很抱歉,我之前的回答仍然存在错误。在`tar`命令中,通配符 `*` 无法递归地压缩文件夹下的所有文件。如果您想要压缩文件夹下的所有文件,但不包括文件夹本身,可以使用 `find` 命令配合 `tar` 命令来实现。以下是正确的方法:
```shell
find /bigdata/test -type f -print0 | tar -zcvf ddfdd.tar.gz --null -T -
```
这个命令会使用 `find` 命令找到 `/bigdata/test` 文件夹下的所有文件,并将它们传递给 `tar` 命令进行压缩。`-type f` 表示只匹配普通文件,`-print0` 使用 null 字符分隔文件名,`--null` 告诉 `tar` 命令使用 null 字符作为文件名的分隔符,`-T -`表示从标准输入读取文件名。
这样,您就可以压缩文件夹下的所有文件,而不包括文件夹本身。请确保您有足够的权限来读取 `/bigdata/test` 目录和创建压缩文件。再次对之前的误导表示歉意,并感谢您的耐心。
相关问题
在linux中用tar命令,怎样压缩文件夹下的所有文件,但不要压缩文件夹,下面是我的错误代码,tar -zcvf ddfdd.tar.gz /bigdata/test,请纠正
您的命令几乎正确,只需要稍作修改即可。以下是正确的命令:
```shell
tar -zcvf ddfdd.tar.gz -C /bigdata/test .
```
在这个命令中,我们使用了 `-C` 参数来指定要压缩的目录,并使用 `.` 表示当前目录下的所有文件。这样,`tar` 命令将压缩目录 `/bigdata/test` 下的所有文件,但不会压缩文件夹本身。
压缩后的文件将保存为 `ddfdd.tar.gz`。您可以根据需要更改压缩文件的名称。请确保您有足够的权限来读取 `/bigdata/test` 目录和创建压缩文件。
tar -zcvf 1.tar.gz "*.231241*"
这个命令的作用是将当前目录下所有文件名中包含字符串 ".231241" 的文件打包成一个名为 "1.tar.gz" 的压缩文件。
其中:
- tar:命令本身,用于打包和压缩文件。
- -z:表示使用 gzip 压缩算法压缩文件。
- -c:表示创建一个新的压缩文件。
- -v:表示输出详细的打包过程。
- -f:表示后面紧跟着要指定的压缩文件名。
- "*.231241*":指定要打包的文件名匹配模式,其中 "*" 表示任意字符,"." 表示 "." 字符本身,"231241" 表示字符串 "231241" 本身,因此这个命令会将当前目录下所有文件名中包含字符串 ".231241" 的文件都打包进去。
阅读全文