linux - 你知道我如何自动创建备份文件吗?

标签 linux shell tar

我每天在 Ubuntu/Linux 上使用命令 tar -cpvzf ~/Backup/backup_file_name.tar.gz directory_to_backup/ 备份文件几次。我想创建一个脚本来自动创建文件名 - 检查:

~/Backup/backup_file_name_`date +"%Y-%m-%d"`_a.tar.gz

如果存在,如果存在则将“_a”替换为“_b”,然后检查直到 z 的所有字母。创建第一个不存在的备份文件。如果直到 z 的所有文件都存在,则将“_1”添加到文件名(带有“_z”)并检查所有数字,直到文件不存在。切勿更改现有文件,而仅创建新的备份文件。你知道如何创建这样的脚本吗?

最佳答案

你可以做类似的事情

for l in {a..z} ; do
    [[ -f ~/Backup/backup_file_name_`date +"%Y-%m-%d"`_${l}.tar.gz ]] && continue
    export backupname=-f ~/Backup/backup_file_name_`date +"%Y-%m-%d"`_${l}.tar.gz && break
done

# test if $backupname is properly set, what if `z` is used? I'm leaving this to you
# then backup as usual

tar -cpvzf $backupname directory_to_backup/

这会遍历字母,如果所需文件存在,则跳过设置 backupname 变量。

关于linux - 你知道我如何自动创建备份文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699620/

相关文章:

python - pip install pyopenssl 对象没有属性 'SSL_ST_INIT'

linux -/pentaho/home 请求的服务不可用

java - 为什么不产生 OutOfMemoryError?

linux - Tar命令备份错误

c - 读取保存文件时,链接类型 1 不支持入站/出站

c++ - 如何在 Linux 中将共享库转换为静态库

shell - 使用 shell 脚本比较两个列表

python - 从命令行运行 R 脚本(从 python 执行)

linux - tar 目录,但不要在存档中存储完整的绝对路径

java - 快速 targz unArchiver