2017-09-26 95 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'以避免危險。' –

相關問題