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$ 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章