上面给出的脚本执行后打印tar: Removing leading `/' from member names
时间: 2024-04-21 08:22:35 浏览: 198
这个警告信息是由于在使用 `tar` 命令时,备份文件的路径中包含了 `/`,导致 `tar` 命令自动删除了路径中的前导 `/`。为了解决这个问题,你可以使用 `-P` 选项来确保 `tar` 命令保留完整的路径。以下是修改后的脚本:
```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}" -P -C $source_dir .
# 删除旧的备份文件,保留最新的15个备份
find $backup_dir -type f -name "backup_*.tar.gz" | sort -r | tail -n +16 | xargs rm -f
```
在这个修改后的脚本中,我们添加了 `-P` 选项来确保 `tar` 命令保留完整路径。这样,在解压缩时就不会删除前导的 `/`。
请将脚本中的 `/path/to/source` 和 `/path/to/backup` 替换为实际的源目录和备份目录路径,并确保脚本具有执行权限。
如果你还是遇到相同的警告信息,请提供更多关于你的环境和命令行执行的详细信息,以便我们更好地帮助你解决问题。
阅读全文