使用tar时排除目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用tar时排除目录相关的知识,希望对你有一定的参考价值。
我有一个非常简单的bash脚本,每晚都通过crontab运行。
我遇到的问题是在使用tar存档我的网站时忽略其中一个目录。它似乎仍然包括它。
有什么想法吗?
#!/bin/bash
NOW=$(date +"%Y-%m-%d-%H%M")
DB_USER=""
DB_PASS=""
DB_NAME=""
DB_HOST=""
TREE_FILE="$NOW.tar.gz"
DB_FILE="$DB_NAME.$NOW.sql"
BACKUP_DIR="/var/www/html/site/backups/"
WWW_DIR="/var/www/html/site/"
mkdir -p $BACKUP_DIR
tar -czvf $BACKUP_DIR/$TREE_FILE --exclude=/var/www/html/site/backups/ $WWW_DIR
mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_FILE
find $BACKUP_DIR -type f -mtime +7 -delete
答案
我相信tar会从目录路径中删除任何尾部斜杠,因此我认为您只想将尾随斜杠从模式中删除:
tar -czvf $BACKUP_DIR/$TREE_FILE --exclude=/var/www/html/site/backups $WWW_DIR
这将排除目录backups
及其下面的所有内容,但不包括(例如)名为backupsthing
的文件。
你也可以这样做:
tar -czvf $BACKUP_DIR/$TREE_FILE --exclude="/var/www/html/site/backups/*" $WWW_DIR
这将包括backups
dir本身,但不包括它。 (即,你在焦油中有一个空的dir。)
以上是关于使用tar时排除目录的主要内容,如果未能解决你的问题,请参考以下文章