linuxshell如何判断一个文件是否存在

说白了,判断一个文件在Linux shell中是否存在就只有两个词:if和-f。

先说最重要的一点,-f并不是一个花哨的命令,它是一个文件测试操作符,专门用来查看文件是否驻留在那里。
去年我们创建了一个监控系统,因为它没有添加-f。
结果文件突然消失了,整个服务崩溃了。
用俚语来说,这被称为雪崩效应。
事实上,前端的一个小延迟就会导致整个服务瘫痪。
还有一点,请记住,上次我测试脚本时,文件名有空格但没有引号,并且崩溃了。
所以不要在“$FILE”中留下引号。
还有另一个关键细节,例如 [ -f "/var/log/yourfile.txt" ];那么,如果你无法判断该路径是文件还是目录,-f可以帮助你准确找到它。

我认为 [-e "文件名"] 起初也可以工作,但后来意识到这是错误的。
-e 只需要存在,无论它是否是一个文件。
差异是巨大的。
等等,还有一件事。
如果没有足够的权限,例如运行脚本的用户是guest,但文件是由root创建的,那么guest就看不到它。
这就是为什么您需要提出许可问题。

建议您尝试在 if 中添加 -f 和“文件路径”,但不要只添加它。
路径必须正确,权限足够。
你有没有想过,为什么有些系统必须使用 bash -c 'if [ -f ... ];然后...fi'来运行它?

LINUX怎么运行.SH后缀的脚本文件_LINUX运行.SH脚本教程

在Linux上运行.sh脚本时,首先检查权限,然后尝试路径,并使用解释器尝试。
Shebang第一行正确,换行符必须一致。
如果权限不够,请更改。
如果路径错误,请重新检查。
如果解释器路径正确,如果调试了语法错误,请执行以下步骤。
问题一般都可以解决。