我这里有一个 linux box,我已经在我的 windows 计算机上设置了一个 cifs 共享文件夹。那里没有问题,它完全按预期工作。但是,我考虑过使用同一目录运行一些 bash 脚本,但似乎找不到我的根目录。
now=$(date +"%Y-%m-%d")
#or: `now=$(date +%s)` if you back up more than once a day
mkdir /__backup/"$now"
从共享文件夹执行此操作会提示找不到目录 运行这些命令:
echo "$0"
dirname "$0"
地址显示为“.”
有人对如何让它运行有任何想法吗?
你在做什么:
#!/bin/bash
now=`date "+%Y-%m-%d"`
mkdir "/__backup/$now"
所以这只有在
/__backup/
存在的情况下才有效。做:
#!/bin/bash
now=`date "+%Y-%m-%d"`
mkdir -p "/__backup/$now" # -p creates parent directories as needed (see man mkdir)
#Optional: change directory to the one you just created:
cd /__backup/$now
当然,您需要 root 才能在
/
中创建目录,因此您可能需要检查一下。
if [ `whoami` = "root" ]; then
# You are root...
else
echo "Error: Only root can do that."
exit 1
fi
如果在
__backup
中创建~
,就可以避免整个需要root的问题。您可能还想通过将 __backup
重命名为 .backup
来隐藏它。