Answers:
除了但以理贝克说,我发现自己使用-f
绕过-i
,因为它导致使用这是潜在的危险rm -f
和rm -rf
不必要的。某种程度上相关:一种预防rm -rf
问题的方法是创建一个名为“ -i”的文件,以回答该问题:如何防止意外的rm -rf / *?。
但是再说一次,如果没有该别名,我就不会使用-f,整个事情就不会成为问题。
根据我过去与数百名用户一起工作的经验,这种方法的危害要小得多:
rm () # must be a function, must require single answer for all targets
{
ls -FCsd "$@"
local reply ; echo -n 'remove[ny]? ' ; read reply
if [ "_$reply" = "_y" ] ; then
/bin/rm -rf "$@" ; else echo '(cancelled)'
fi
}
rm
在缺少此功能或rm -i
别名的某些其他上下文中使用时,通常可以避免灾难。rm
内容没有被修改,其他程序也毫不逊色。代码风格主要与sh兼容(echo .... | tr -d '\012'
用于bash之前的shell 除外),请随时使自己的bash更加具体。我并不是要分享代码本身,而是分享它带来的用户体验更改。
rm -i
历史上(以我的经验来看,拥有数百个用户)会导致错误的文件删除,并且所包含的功能已训练用户使用正确的通配符,从而降低了错误率。因此,rm -i
为了方便起见,我已经解决了困扰的关键问题并提供了解决方案,仅在功能下方的要点并不妨碍它们之间的紧密联系。