我使用命令tar -cpvzf ~/Backup/backup_file_name.tar.gz directory_to_backup/
在Ubuntu / Linux上每天备份几次文件(文件名包含YYYY-MM-DD格式的日期和a到z的字母 - a是第一个备份这个日期等。)但我想创建一个新的存档,如果它已经存在,则不会覆盖该存档。如何防止tar覆盖现有存档?如果存档存在,我希望tar退出而不做任何事情(如果可能,显示错误消息)。
答案 0 :(得分:7)
事先检查文件是否存在:
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
然后用:
调用脚本{{1}}
答案 1 :(得分:0)
我创建了文件~/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/
如果文件不存在,则会创建备份文件。