我使用该命令在Ubuntu/Linux上每天备份文件几次tar -cpvzf ~/Backup/backup_file_name.tar.gz directory_to_backup/(文件名包含YYYY-MM-DD格式的日期和a到z的字母 -  a是此日期的第一个备份等)但是我想创建一个新的存档,如果它已经存在,则不会覆盖该存档.如何防止tar覆盖现有存档?如果存档存在,我希望tar退出而不做任何事情(如果可能,显示错误消息).
事先检查文件是否存在:
if [ -f ~"/Backup/[backup_file_name].tar.gz" ]; then
    echo "ooops backup file was already here"
    exit
fi
tar -cpvzf ~/Backup/[backup_file_name].tar.gz directory_to_backup/
请注意,~如果要扩展它,必须在双引号之外.
谢谢.您知道如何将存档文件名和目录作为命令行参数进行备份吗?文件名包括完整路径.
您可以使用$1,$2等等来指示参数.例如:
if [ -f $1 ]; then
    echo "ooops backup file was already here"
    exit
fi
tar -cpvzf $1 $2
然后使用以下命令调用脚本:
./script.sh file backup_dir
Uri*_*Uri -1
我创建了文件~/scripts/tar.sh:
#!/bin/bash
if [ -f $1 ]; then
    echo "Oops! backup file was already here."
    exit
fi
tar -cpvzf $1 $2 $3 $4 $5
现在我只需输入:
~/scripts/tar.sh ~/Backup/backup_file_name_`date +"%Y-%m-%d"`_a.tar.gz directory_to_backup/
如果该文件不存在,则会创建备份文件。