我在完成学校作业时犯了一个错误,我很好奇我到底做错了什么。
我曾经ssh
登录到为班级提供的超级计算机并将scp
文件复制到我的$HOME
目录中。
我尝试使用 将文件从我的$HOME
目录复制到我的$WORK
目录cp file $WORK
。这产生了一个名为的新文件$WORK
。
然后我尝试rm $WORK
,冻结,然后重新登录到横幅,通知我:
The following filesystem(s) are currently unavailable: /work
You will NOT be able to submit jobs while these are being worked on.
You will receive email when they/it are available again
新创建的文件$WORK
仍然存在。所以我的猜测是rm $WORK
尝试/成功删除了环境变量所引用的任何内容$WORK
?或者该命令被评估为rm -rf /*
,如中所述这Stack Overflow 帖子?
编辑:我刚刚意识到这不是 Ubuntu 特有的问题,因为我相信服务器正在运行 RHEL。不过,我认为我所做的一切都适用于这两个发行版。
答案1
您在使用 shell 变量时犯了一个典型的错误。
请参阅有关您的错误的明确信息http://mywiki.wooledge.org/BashPitfalls
此外,您还应该清除 $WORK 变量的内容。
似乎您将文件“file”的内容复制到了名为“$WORK”的文件中,而不是复制到 $WORK 变量中命名的文件中。如果您想删除新文件,请使用引号,例如:
rm "$WORK"