如何排除文件和目录的组合
拍卖脚本具有以下目录结构
/var/www/html/
file1
file2
/var/www/html/subdir1/
/var/www/html/subdir2/
/var/www/html/subdir3/
/var/www/html/subdirN/
/var/www/html/uploaded/
.htaccess
file3
file4
/banners/
file5
file6
/cache/
file7 <<< exclude
file8 <<< exclude
/hledmd7phk4u5glq5rks8kb621/ <<< exclude
file9 <<< exclude
file10 <<< exclude
/ad0hmd7phk4u5glq5rks8kb258/ <<< exclude
file11 <<< exclude
file12 <<< exclude
/zfddfd7phk4u5glq5rks8kb584/ <<< exclude
file13 <<< exclude
file14 <<< exclude
Ubuntu 14.04 tar目前正在crontab -e中运行,它使用绝对路径从/ var / www / html / level备份整个目录。 需要一个新的tar备份命令,通过排除上面显示的文件和目录的组合,减少夜间备份的大小:
1)包含目录/ var / www / html / uploaded / cache /,同时排除/ var / www / html / uploaded / cache /
2)不包括在/ var / www / html / uploaded /下创建的不断变化的MD5目录名称及其内容的长列表
有一种方法可以在一个tar命令中执行此操作吗?
不是你的最终解决方案,但这是一种指导性的思考方式:
对于第一个要求,我们可以像这样使用通配符:
tar -cvf test.tgz --exclude=/var/www/html/uploaded/cache/*
对于第二个要求,MD5作为文件名没有字符串模式,因此应该添加更多其他信息来过滤这些目录。
@ ml48603,如何strcat tar命令,这里是一个例子:
tar_all_cmd=tar -cvf test.tgz
dir_name="/var/www/html/uploaded/"
ls $dir_name | while read filename; do if [ ${#filename} -ge 8 ]; then $option_head="--exclude=$dir_name"; tar_all_cmd="${tar_all_cmd}${option_head}${filename}"; fi; done;
链接地址: http://www.djcxy.com/p/47087.html
上一篇: How to tar while excluding a combination of files and directories