linux下一个有意思的问题(文件名以短划线开头)
这本是无意中的一个发现。
在linux下,文件名中含有 - 是没有问题,但是如果文件名是以-作为第一个字符的,那么就比较麻烦了。
问题演示
看这里,以短划线开头的文件名似乎对mv cp rm 等操作免疫了。利用这个特性可以制造出一些比较麻烦的文件或者文件夹来。
[email protected]:~$ ls -python.md [email protected]-pc:~$ mv -python.md 5-python.md mv:无效选项 -- p Try ‘mv --help‘ for more information. [email protected]-pc:~$ mv "-python.md" 5-python.md mv:无效选项 -- p Try ‘mv --help‘ for more information.
解决办法
这个其实很好解决的嘛,问题的原因是因为其将 -当做了一个选项参数的标识,而导致找不到对应的文件。解决的办法就是想办法把这个-给隐藏起来咯。
[email protected]:~$ mv ./-python.md 5-pythom.md
文件名以空格开头
这里不打算说太多,原理是一样的。如果文件名以空格开头,必须知道空格的数目。
将要操作的文件名以单引号 ‘‘ 包裹起来
例如有一个文件名为 ” A" 注意,该文件名为三个空格加一个字母A。如果对其重命名,使用以下命令
mv ` A‘ 新文件名
时间: 2024-10-11 05:44:53