上面给出的脚本执行后打印tar: Removing leading `/' from member names
时间: 2024-04-16 16:29:32 浏览: 96
这个警告信息是由于在备份时指定了压缩文件的相对路径,导致在解压缩时删除了前导的`/`。为了解决这个问题,可以改变备份文件的生成方式。以下是修改后的脚本:
```bash
#!/bin/bash
# 备份源目录和目标目录
source_dir="/path/to/source"
backup_dir="/path/to/backup"
# 创建备份目标目录
mkdir -p $backup_dir
# 生成备份文件名(不包含路径)
backup_filename="backup_$(date +%Y%m%d%H%M%S).tar.gz"
# 备份源目录到目标目录(包含完整路径)
tar -czf "${backup_dir}/${backup_filename}" -C $source_dir .
# 删除旧的备份文件,保留最新的15个备份
find $backup_dir -type f -name "backup_*.tar.gz" | sort -r | tail -n +16 | xargs rm -f
```
在这个修改后的脚本中,我们使用 `-C` 选项指定了备份文件的根目录,这样在解压缩时就会保留前导的 `/`。同时,我们将备份文件名和备份目录的拼接操作放在了一起,确保生成的备份文件路径是正确的。
请将脚本中的 `/path/to/source` 和 `/path/to/backup` 替换为实际的源目录和备份目录路径,并确保脚本具有执行权限。
如果你还是遇到相同的警告信息,请提供更多关于你的环境和命令行执行的详细信息,以便我们更好地帮助你解决问题。
阅读全文