使用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时排除目录的主要内容,如果未能解决你的问题,请参考以下文章

使用tar时排除目录

如何使 tar 排除隐藏目录

linux使用tar命令打包压缩时排除某个文件夹或文件

创建 .tar.gz 文件时排除目录

压缩时排除选定的子目录

AIX下tar排除目录