EC2实例执行touch .env无报错但ls不显示文件问题
问题原因
这是Linux文件系统的基础规则导致,和EC2环境、touch命令执行异常无关,你碰到的两个现象都属于正常表现:
- 类Unix系统中,所有文件名以
.开头的文件、文件夹默认是隐藏属性,直接执行不带参数的ls命令默认过滤隐藏项不会展示,不代表文件没有创建成功。 cd是目录切换命令,仅能作用于目录类型的文件。你用touch创建的.env是普通文本文件,本身就不支持用cd进入——你之前创建的anything.js同样是普通文件,执行cd anything.js也会报错,和文件名后缀没有关系。
解决方法
- 验证文件是否存在:执行带
-a(all)参数的ls命令,列出当前目录下所有文件(包含隐藏项)即可看到.env:
ls -a
- 如果需要编辑
.env文件,直接用文本编辑器打开即可,不需要cd进入,比如用nano编辑的命令为:
nano .env
- 如果你本来的需求是创建名为
.env的目录而非普通文件,不要用touch创建,改用mkdir命令:
mkdir .env # 目录创建完成后才可以正常cd进入 cd .env
排查补充:如果执行
ls -a在当前目录看不到.env,先确认你执行touch .env时所在的工作目录,文件可能被创建到了其他路径下,执行find ~ -name ".env"可以检索当前用户家目录下所有名为.env的文件位置。
内容的提问来源于stack exchange,提问作者user18899735
相关产品推荐
相关产品推荐

