我正在尝试构建一个小备份脚本,但我不断收到以下错误:
tar: Removing leading `/' from member names
tar: /projects: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
文件夹/项目存在,但仍然没有创建tar球。这是我的代码:
#!/bin/bash
backup_files="/projects"
#destination of backup
dest="/"
#Create archive filename
day=$(date +%Y-%m-%d)
hostname=$(hostname -s)
archive_file="$hostname-$day.tar.gz"
#Backup the files using tar
tar -czf $archive_file $backup_files
#Print end status message
echo
echo "Backup finished"
ls -ld / projects显示以下内容:
ls: cannot access /projects: No such file or directory
对于什么是错误的任何想法?
答案 0 :(得分:5)
在Linux和其他相关系统上以前导/
开头的文件路径位于根目录。这意味着"/projects"
通常指的是与"projects"
不同的目录。
您可能正在尝试使用路径/path/to/projects
从目录/path/to
访问子目录/projects
。这是不正确的 - 如果您的工作目录是/path/to
,则需要通过将projects
更改为backup_files="/projects"
来访问文件夹backup_files="./projects"
- "."
指的是当前工作目录 - 或简称backup_files="projects"
。
因此,虽然相对文件路径"./projects"
和"projects"
通常是等效的,但它们通常在功能上与完全限定的路径"/projects"
不同。