例如我有一个脚本如下:
for i in */*/
do
cd $i
cp POSCAR.ideal OSZICAR ..
cd ..
rm -r */
cd ../;
done
删除一个文件夹的子文件夹,但是稍不小心,比如最后一个../
被误写为../../
,那么整个电脑就会被抹掉。这是非常糟糕的!那么我想问有没有一种方法可以安全地限制终端的操作范围,以免出现这样的悲剧?
答案1
正如@Joe 在评论中正确提到的那样,最好重写这样一个危险的脚本。但是,如果您确实希望继续使用当前脚本,一个基本方法是将所有rm
操作包装在if
条件内。
因此,例如:
if pwd | grep <some-pattern>;
then rm -r */;
fi;
您可以grep
根据需要修改该部分。我的观点是,grep
在发出rm
命令之前只需进行简单的验证即可。