【问题标题】:Why does the filesystem not recognize a file named ../blah.sh为什么文件系统无法识别名为 ../blah.sh 的文件
【发布时间】:2017-09-26 00:57:53
【问题描述】:

我正在使用带有 ext4 文件系统的 Ubuntu 16.04.3 LTS。

当我制作这样的文件时:

touch ../blah.sh 

我用的时候不显示:

ls -al 

当我尝试删除文件时:

rm * --> : rm: cannot remove '*': No such file or directory.

但是当我删除它时:

rm ../blah.sh ---> it succeeds.

除此之外,我还可以使用 vim 编辑文件,将代码放在那里,然后像这样运行它:

./../blah.sh 

这种行为怎么可能?这是 bash 特定的行为还是来自操作系统?是否可以隐藏这样的文件?

【问题讨论】:

  • 您需要执行 ls -al ..ls -l ../blah.sh 才能查看父目录中的文件。 ls -al 只是在当前目录中查找,.。这适用于任何类型的 Unix 文件系统。如果你真的很喜欢 esoterica,如果你的当前目录是/(根文件系统)并且你尝试操作,你会看到blah.sh,因为根目录的父级是根目录。 OTOH,您不应该在根目录中乱搞,尤其是不具有写权限(作为超级用户)。你犯错误的风险太大了,尤其是当你问这个问题的时候。

标签: linux bash filesystems ls ext4


【解决方案1】:

当您使用 .. 时,您将在当前所在的父目录中创建文件。

如果你尝试这个,它应该会显示文件:

ls -al ..

对于 rm 你也必须执行以下操作,尽管这显然很危险。

rm ../*

【讨论】:

  • 我建议你建议rm ../blah.sh来避免危险。'
猜你喜欢
  • 2016-06-03
  • 1970-01-01
  • 2019-09-02
  • 2022-01-10
  • 2015-04-03
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
相关资源
最近更新 更多