我看了很多文章,我似乎无法弄明白,我想我是个菜鸟。
无论如何我有一个我想要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)尝试修剪而不是什么,每次尝试看起来都比上次更荒谬。
如果有人可以向我展示查找部分的解决方案,那就太棒了 - 谢谢
('`'字符在日期附近,当我尝试将它们放在那里时它会破坏代码视图)
答案 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] */