我一直在尝试编写一个 bash 脚本来自动备份我的保存文件。
我已经走了很远,但对最后一部分感到困惑。我的命令:
cp -v -r "$dir_loc/$name_pattern.*" "$backup_loc"
我只想复制保存游戏的文件。所以SAVEGAME.0/1/2
等等我知道你可以这样做SAVEGAME.*
但是当我在 bash 脚本中尝试这个时,它说不存在这样的文件或目录。
有什么帮助吗?
编辑:我想通了。谢谢@pfnuesel
我需要不包含.*
在引号中:
cp -v -r "$dir_loc/$name_pattern".* "$backup_loc"
答案1
您将 * 放在引号中,因此它不会被扩展。这意味着,它将查找名为SAVEGAME.*
.
答案2
你的想法基本上是合理的,因此很可能存在另一个问题,拼写错误或类似的问题。当你做一切事情时,这一点就会变得明显echo
。例如:
echo "dir_loc=$dirloc"
echo "name_pattern=$name_pattern"
if [ ! -d backup_loc ] ; then
echo "backup_loc does not exist"
fi
cp -v -r "$dir_loc/$name_pattern.*" "backup_loc"
(在这种情况下,我认为backup_loc
应该是$backup_loc
,但这纯粹是我的猜测)