风吹过


以前,晚餐后在学校田径场的大榕树下,散散步吹吹风,累了就去图书馆看看书,感觉真好。


linux下一个有意思的问题(文件名以短划线或空格开头)

[TOC] 博客园文章地址 http://www.cnblogs.com/oloroso/archive/2015/07/15/4648711.html

linux下一个有意思的问题(文件名以短划线开头)

这本是无意中的一个发现。

在linux下,文件名中含有 - 是没有问题,但是如果文件名是以-作为第一个字符的,那么就比较麻烦了。

 

问题演示

看这里,以短划线开头的文件名似乎对mv cp  rm   等操作免疫了。利用这个特性可以制造出一些比较麻烦的文件或者文件夹来。

o@o-pc:~$ ls
-python.md
o@o-pc:~$ mv -python.md 5-python.md
mv:无效选项 – p
Try mv –help for more information.
o@o-pc:~$ mv -python.md 5-python.md
mv:无效选项 – p
Try mv –help for more information.

 

解决办法

这个其实很好解决的嘛,问题的原因是因为其将 -当做了一个选项参数的标识,而导致找不到对应的文件。解决的办法就是想办法把这个-给隐藏起来咯。

o@o-pc:~$ mv ./-python.md 5-pythom.md

 

文件名以空格开头

这里不打算说太多,原理是一样的。如果文件名以空格开头,必须知道空格的数目。

将要操作的文件名以单引号  包裹起来

例如有一个文件名为 ” A 注意,该文件名为三个空格加一个字母A。如果对其重命名,使用以下命令

mv `   A   新文件名