刪除古怪檔案的方法

pingley發表於2012-03-02
刪除古怪檔案的方法
先來建立一個古怪的檔案-f
[root@zeng ~]# ll > "-f"
[root@zeng ~]# ll -t
total 340
-rw-r--r--. 1 root root    834 Mar  2 16:25 -f
你已經看到我們已經建立了一個古怪的檔案-f。現在我們嘗試去刪除它。
[root@zeng ~]# rm -f
[root@zeng ~]# ll -t
total 340
-rw-r--r--. 1 root root    834 Mar  2 16:25 -f
檔案還在並沒有被刪除,因為系統認為-f是rm命令的引數而不是檔名。
[root@zeng ~]# rm ./-f
rm: remove regular file `./-f'? y
現在我們才把它刪除。
[root@zeng ~]# mkdir test
[root@zeng ~]# ls > "-rf test"
[root@zeng ~]# ll -t
total 344
-rw-r--r--. 1 root root    146 Mar  2 16:29 -rf test
drwxr-xr-x. 2 root root   4096 Mar  2 16:29 test
我們透過上面的命令建立了一個空的test目錄,一個古怪的 -rf test檔案。在執行下面的命令。
[root@zeng ~]# rm -rf test
[root@zeng ~]# ll -t
total 340
-rw-r--r--. 1 root root    146 Mar  2 16:29 -rf test
悲劇發生了,系統把 test目錄給刪除了。雖然這裡的test目錄是空的不重要。但是萬一有一天有人惡意建立了這樣類似的檔案。那後果可就嚴重了。在上面的例子中rm 命令把-rf test 檔案解釋成了使用-rf 引數刪除 test目錄。下面我們嘗試把新建的那個古怪的檔案刪除。
[root@zeng ~]# rm ./ -rf test
rm: cannot remove directory: `.'
[root@zeng ~]# rm "-rf test"  
rm: invalid option -- ' '
Try `rm ./'-rf test'' to remove the file `-rf test'.
Try `rm --help' for more information.
[root@zeng ~]# rm "./-rf test"
rm: remove regular file `./-rf test'? y
需要加雙引號,因為要刪除的檔案中存在空格。
所有在給檔案命名的時候要遵循規範,不要自己建立些莫名其妙的檔案害了自己。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-717552/,如需轉載,請註明出處,否則將追究法律責任。

相關文章