Linux 下控制檯指令操作以 - 開頭的文件

本文記錄的是在Linux 控制檯操作以短橫槓 - 開頭的文件方法,例如 -test、-aaa、-bbb。
最開始是從要刪除以 - 開頭的文件開始發現這個問題的。


一、列舉出現的問題

當使用一些控制檯命令操作以短橫槓 - 開頭的文件時總是失敗的。
例如:現在操作一個名稱爲 -test的文件

hrx@@@:/tmp/temp$ ls
-test
hrx@@@:/tmp/temp$ rm -test
rm:無效選項 -- t
Try 'rm ./-test' to remove the file '-test'.
Try 'rm --help' for more information.
hrx@@@:/tmp/temp$ cat -test
^C
hrx@@@:/tmp/temp$ cp -test test
cp: failed to access 'est': 沒有那個文件或目錄
hrx@@@:/tmp/temp$ mv -test test
mv: failed to access 'est': 沒有那個文件或目錄
hrx@@@:/tmp/temp$ 

二、原因

這是因爲控制檯的命令大多都可以配置參數,並且參數以短橫槓 - 開頭,而控制命令把輸入的 -test中的test字段當成了參數去進行解析。

三、解決方法

在命令之後先加上兩個短橫槓 ,然後再緊跟要操作的文件名。
例如:

hrx@@@:/tmp/temp$ cat -- -test
aaa
hrx@@@:/tmp/temp$ cp -- -test test
hrx@@@:/tmp/temp$ mv -- -test -test1
hrx@@@:/tmp/temp$ ls
test  -test1
hrx@@@:/tmp/temp$ rm -- -test1
hrx@@@:/tmp/temp$ 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章