linux下rm命令刪除檔名中包含特殊字元的檔案

shwenwen發表於2013-01-11

1. 刪除帶“-”的檔名的方法

2. 刪除包含其它特殊字元的檔案

3. 刪除系統打不出的亂碼檔名

[@more@]
1. 刪除帶“-”的檔名的方法
大部分是由於誤操作的原因,產生了一些 特殊字元的檔案 如 -foo
rm --help
用法:rm [選項]... 目錄...
Remove (unlink) the FILE(s).
<wbr>-d, --directory <wbr><wbr><wbr><wbr><wbr><wbr>unlink FILE, even if it is a non-empty directory
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>(super-user only; this works only if your system
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>supports `unlink' for nonempty directories)
<wbr>-f, --force <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>ignore nonexistent files, never prompt
<wbr>-i, --interactive <wbr><wbr><wbr><wbr>prompt before any removal
<wbr><wbr><wbr><wbr><wbr>--no-preserve-root do not treat `/' specially (the default)
<wbr><wbr><wbr><wbr><wbr>--preserve-root <wbr><wbr>fail to operate recursively on `/'
<wbr>-r, -R, --recursive <wbr><wbr>remove the contents of directories recursively
<wbr>-v, --verbose <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>explain what is being done
<wbr><wbr><wbr><wbr><wbr>--help <wbr><wbr><wbr><wbr>顯示此幫助資訊並離開
<wbr><wbr><wbr><wbr><wbr>--version <wbr>顯示版本資訊並離開
要刪除第一個字元為‘-’的檔案 (例如‘-foo’),請使用以下其中一種方法:
<wbr>rm -- -foo
<wbr>rm ./-foo
請注意,如果使用 rm 來刪除檔案,通常仍可以將該檔案恢復原狀。如果想保證
該檔案的內容無法還原,請考慮使用 shred。
<wbr>

2. 刪除包含其它特殊字元的檔案

對於含有其它特殊字元的檔名,如<>!*等,可用
“”轉義符或“”雙引號引起控制
如名為“>”或“*”
rm >
rm “*”

3. 刪除系統打不出的亂碼檔名

系統中有一個檔名全是亂碼的檔案,根本無從下手進行刪除(系統打不出亂碼符號),我們可以嘗試以下的歪招
例如這個亂碼的檔案是luanma.txt,當然該例假設luanma便是各種奇形怪狀的亂碼,呵呵~~我們可以用rm *搞定
#cd xxx
進入亂碼檔案所在的目錄
#rm *
這個命令表示刪除該目錄的所有檔案,當然最終目的不是刪除所有檔案啦~~,輸入命令回車後系統在刪除每個檔案都提示是否刪除這個檔案,其他不相關的檔案全部都輸入“n”回車跳過不刪除,直到我們的目標出現
rm: remove regular empty file `luanma.txt'?
哈哈,這是我們果斷地輸入“y”,回車,將這個可恨的檔案幹掉!

不過這個方法要視系統而定,要謹慎使用,上面例子使用的是redhat,有些linux的發行版本rm命令沒有提示功能,輸入rm *就直接把所有檔案幹掉了,所以用之前先新建一個目錄測試一下以防萬一。

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

相關文章