修剪目录和当前目录的文件以与tar一起使用

时间:2017-02-19 20:22:40

标签: linux bash shell unix tar

我看了很多文章,我似乎无法弄明白,我想我是个菜鸟。

无论如何我有一个我想要tar的目录,但是我想要排除浅层目录的文件,以及排除文件夹 “插件”,“备份”和“日志”位于浅层目录中。

- >

\#!/bin/bash
mkdir -p /path/to/backup/directory/`date +%d%m%y`
cd /path/to/backup/directory/`date +%d%m%y`
cd .. | find . -not \\( -path plugins -prune -o -path backups -prune -o -path logs -prune \\) -mindepth 1 -print0 | xargs -0 tar cpj --directory=$(cd -) -f `date +%H`.tar.gz

查找部分出了什么问题,它没有排除任何内容。这是我的第30次(不是字面上但可能比实际上更高的xD)尝试修剪而不是什么,每次尝试看起来都比上次更荒谬。

如果有人可以向我展示查找部分的解决方案,那就太棒了 - 谢谢

('`'字符在日期附近,当我尝试将它们放在那里时它会破坏代码视图)

2 个答案:

答案 0 :(得分:0)

关于查找排除目录,请尝试

find . -type d \( -path plugins -o -path backups -o -path logs \) -prune -o -print

答案 1 :(得分:0)

使用--exclude = PATTERN和*/,因为它只会捕获目录:

tar --exclude=plugins/ --exclude=logs/ --exclude=backups/ -cf /path/to/backup/directory/`date +%d%m%y`/whatever.tar [other options] */