说到名字,自然会想起人名来,每个人都有名字,而且每个人都希望有一个好听的名字。在实际生活中是这样,不过,在编程的世界里却不是这样,我们在给文件命名的时候好听是次要的,通常我们都会叫一个容易理解的名字,这里的容易理解是指看到文件的名字就能知道文件中内容。然而在实际工作中,每个人并不会完全遵守这个原则,正所谓理想很丰满,现实很骨感。那么遇到不遵守原则的文件名该如何处理?接下来我们一起看看。
我遇到了一个特殊的文件名:”-test”
。我猜想给文件命名的人是想使用下划线的,结果错误地打成了减号。这个错误给使用Linux命令的人带来了麻烦,因为在Linux命令中都是使用减号作为命令的选项,文件名中出现减号会引起Linux命令不能识别文件的麻烦。比如我看到这个”-test”
文件时,就想删除它,于是我使用rm命令:rm -test
,操作的结果如下:
rm: invalid option -- 't'
Try 'rm ./-test' to remove the file ‘-test’.
Try 'rm --help' for more information.
从结果中可以看到,rm命令不能删除这个特殊文件,不过它有提示,于是我使用提示中的方法: rm ./-test
来删除这个特殊文件,这回rm命令运行正常,文件也被成功删除。
我本着追根问底的原则又看了一下rm –help
中的内容。结果如下:
To remove a file whose name starts with a '-', for example '-foo',
use one of these commands:
rm -- -foo
rm ./-foo
看来Linux命令考虑还是还是比较全面的,我依据该结果试用了: rm -- -test
。其操作结果和 rm ./-test
的结果相同。
我试用了其它几个常用的Linux文件操作命令,比如:mv,cp。它们也不能处理这个特殊的文件。这时我联想了一下,决定在目录前面加上了路径来操作:mv ./test _test
。这时操作成功了。
我使用此方法在其它Linux命令中实践了一下,结果都OK。于是我得出结论:
在遇到文件名中包含减号时,可以在Linux命令中加上文件的路径,这样就可以操作这类特殊文件了。