2017-09-26 63 views
0

我正在使用Ubuntu 16.04.3 LTS和ext4文件系统。为什么文件系统无法识别名为../blah.sh的文件

当我作出这样一个文件:

touch ../blah.sh 

它不会显示出来,当我使用:

ls -al 

当我尝试删除该文件与:

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

但是,当我删除它:

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

除了这个我可以用Vim编辑这个文件,把代码放在那里,然后运行它想:

./../blah.sh 

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

+0

你需要做'LS -al ..'或'ls -l命令../ blah.sh'看到在父目录中的文件。 'ls -al'只在当前目录“。”中查找。这适用于任何类型的Unix文件系统。如果你真的喜欢奥秘,如果你当前的目录是'/'(根文件系统)并且你尝试了这些操作,你会看到'blah.sh',因为根目录的父目录是根目录。 OTOH,你不应该在根目录中搞乱,特别是不能写权限(如超级用户)。你犯了一个错误的危险太大,特别是如果你问这个问题。 –

回答

1

当你使用..你正在你目前所在的父目录中创建文件。

如果你试试这个它应该显示的文件:

ls -al .. 

也为RM你必须做到以下几点,虽然它的危险明显。

rm ../* 
+0

哦,谢谢你我完全错过了! –

+0

我建议你应该建议'rm ../ blah.sh'以避免危险。' –

相关问题