有时当我想删除一个文件(在脚本中)时,我会直接删除它,而不是先检查它是否存在。所以我这样做:
$ rm "temp.txt" 2>/dev/null
而不是这样:
[ -f "temp.txt" ] && rm "temp.txt"
我只是觉得去检查文件是否存在并返回退出代码是浪费时间。
因此,也许采用第一种方法会更快,特别是如果大多数情况下该文件很可能存在。
不管怎样,这样做还有其他优点(或缺点)吗?
我认为它会变得更快,这是错的吗?
答案1
为什么不?
$ rm -f "temp.txt"
所以您不必检查,也不必重定向错误输出。
答案2
实际上有两种情况:
要删除的文件应该存在。在这种情况下,脚本不应该忽略错误,而应该适当地处理这种情况。例如,要创建文件的文件系统已满,或者应该创建文件的进程崩溃,或者其他情况。
要删除的文件可能存在,也可能不存在,在这种情况下测试其存在是没有意义的。