用于备份我的“主”文件夹的 Bash 脚本
Posted
技术标签:
【中文标题】用于备份我的“主”文件夹的 Bash 脚本【英文标题】:Bash Script to backup my "home" folder 【发布时间】:2014-07-23 02:08:14 【问题描述】:如何跳过备份“下载”文件夹?
这是我的代码:
#!/bin/bash
# Daily backup script
# Create some needed variable
day=$(date +%F)
Folder="/home/ME/"
File="/media/MediaTwo/Copy/UbuntuBackup/$day.tar.gz"
# Backup Server Configuration
tar cpzf $File $Folder
# Remove backup files older than 90 days
find $File* -mtime +90 -exec rm \;
【问题讨论】:
看这里,可能会重复http://***.com/questions/984204/shell-command-to-tar-directory-excluding-certain-files-folders
【参考方案1】:
tar cpzf $File --exclude=Downloads $Folder
【讨论】:
这里需要单引号吗? @haifzhan 我不明白你的问题。您认为单引号在哪里有用/必要? 您可以重复--exclude
选项来排除另一个目录。【参考方案2】:
排除下载文件夹的最简单方法是在tar
命令中添加一个选项(即--exclude
)。
我建议将代码的第 12 行修改为:
tar cpzf $File --exclude "$FolderDownloads" $Folder
我认为这应该可以满足您的需求。
【讨论】:
【参考方案3】:使用扩展模式匹配:
shopt -s extglob; shopt -s dotglob
tar cpzf "$File" "$Folder"/!(Downloads)
【讨论】:
【参考方案4】:我建议在多核机器上实现最高速度:
tar -c --use-compress-program=pigz -f $File --exclude=Downloads $Folder
【讨论】:
以上是关于用于备份我的“主”文件夹的 Bash 脚本的主要内容,如果未能解决你的问题,请参考以下文章