我在Valve上读过一个令人不安的话题,其中用户在使用 Steam 脚本时丢失了他的系统。有关于reddit.linux和reddit/steam的讨论。
这可能不是一个常见问题,因为我更改了有关系统的各种配置。有问题的脚本以一种非常非常愚蠢的方式做了一些事情,但它可能不会触发每个系统的失败场景,因为......
原始错误:
我不确定发生了什么。我将标题中的文件夹移动到安装在其下
/media/user/BLAH并符号链接/home/user/.local/steam到新位置的驱动器。我启动了蒸汽。它没有启动,它提出让我浏览,但当我指向新位置时仍然找不到它。蒸汽崩溃了。我重新启动了它。
它重新安装了自己,一切看起来都很棒。直到我查看并看到 Steam 显然已经从根目录中递归删除了我的用户拥有的所有内容。包括我的 3tb 外置驱动器,我将所有内容备份到安装在 /media 下的所有内容。
在大多数情况下,所有重要的东西都在云中。这是一个巨大的麻烦,但它不是一场灾难。如果移动您的 Steam 文件夹可能导致递归删除目录树中的所有内容,您可能应该抛出错误而不是尝试指向其他内容。或者您知道,允许用户最初像在 Windows 上一样选择安装目录。
我的系统是 ubuntu 14.04,我把它移到的驱动器是 ntfs,如果它值得的话。
Rin*_*ind 14
问题从脚本“steam.sh.”的第 19 行开始:
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMDATA="$STEAMROOT"
Run Code Online (Sandbox Code Playgroud)
$STEAMROOT可以在这里变空有效地使rm -rf "$STEAMROOT/"*进一步进入脚本与 rm -rf "/"*.
有补丁出现,这个脚本有很多错误。最容易更改并至少防止删除它不应该的文件...
rm -rf "$STEAMROOT/"*
Run Code Online (Sandbox Code Playgroud)
到 ...
[[ -n $STEAMROOT && $STEAMROOT =~ 'steam' ]] && rm -rf $STEAMROOT
Run Code Online (Sandbox Code Playgroud)
也可以在STEAMDATA设置后立即添加出口:
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
STEAMDATA="$STEAMROOT"
if [ -z "$STEAMROOT" ]; then
echo "stop script otherwise files are deleted from /."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
如果有人以 root 身份安装了 Steam,请注意:它会删除您的整个磁盘。
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |