小编Ala*_*lan的帖子

tar - 排除某些文件

我希望对目录及其子目录中的所有文件进行 tar 压缩,这些文件不以 .jpg、.bmp、.gif 或 png 结尾。

因此,给定以下文件夹和文件:

foo/file.txt
foo/file.gif
foo/bar/file
foo/bar/image.jpg
Run Code Online (Sandbox Code Playgroud)

我只想压缩文件file.txtfile。file.gif 和 image.jpg 应该被忽略。我还想维护文件夹结构。

我的第一个想法是将 find 命令的结果与 grep -v ".jpg|.gif|.bmp.png" 一起通过管道传输到文本文件,然后使用 tar 包含参数将文件列表提供给它。

但是,grepped find 命令的结果也包含目录(在上面的示例中,它将是“foo”和“foo/bar”),并且当一个目录被提供给 tar 时,它包括该目录中的所有文件,所以我最终会得到一个包含所有文件的 tar 文件——这不是我想要的。

有什么办法可以防止 find 输出目录吗?有没有更简单的方法来解决这个问题?

grep tar find exclude

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

exclude ×1

find ×1

grep ×1

tar ×1