Bash 脚本:复制具有特定文件结尾的文件

Bash 脚本:复制具有特定文件结尾的文件

我一直在尝试编写一个 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,但这纯粹是我的猜测)

相关内容