Linux中创建文件名为特殊字符(#、*、

您所在的位置:网站首页 Linux如何创建文件夹 Linux中创建文件名为特殊字符(#、*、

Linux中创建文件名为特殊字符(#、*、

2024-07-15 05:48| 来源: 网络整理| 查看: 265

CentOS6.9中用touch命令创建名字为#的文件时报错

[root@sotneC6 tmp]# touch # touch: missing file operand Try `touch --help' for more information.

百度了一下,发现原因是shell把特殊字符#解释为注释符,所以touch后面因缺少操作数报错。解决方法有两个:一是将文件名加上单引号;二是指明文件的绝对路径或相对路径(不能直接是文件名)。(参考:如何在Linux中操作文件名有空格和特殊字符)

[root@sotneC6 tmp]# touch '#' # 扩单引号的文件名 [root@sotneC6 tmp]# ls * # [root@sotneC6 tmp]# touch ./# # 指明相对路径的文件名 [root@sotneC6 tmp]# ls * # [root@sotneC6 tmp]# touch "#" # 扩双引号的文件名 [root@sotneC6 tmp]# ls * #

创建名字为!和@的文件名是可以正常创建的

[root@sotneC6 tmp]# touch ! @ [root@sotneC6 tmp]# ls ! @ #

以其他特殊字符*、?、.、…、/、-为文件名的文件无法正常创建,需按以上方法特殊处理

[root@sotneC6 tmp]# touch '*' "?" ./. '..' '/' '-' [root@sotneC6 tmp]# ls ! ? @ * # [root@sotneC6 tmp]# touch ./- [root@sotneC6 tmp]# ls - ! ? @ * #

输入命令后发现 . … / 这三个特殊符号不适用以上方法创建,有点麻烦,应该是shell把三个符号分别解释为当前目录、当前目录上一级目录和根目录。查阅资料得知不能创建文件名包含/的文件除非有Unicode支持。名字为/的文件先不管了,找到一种方法可以让文件名包含.和…(用\让shell忽略下一个字符,得到文件名开头为空格的文件)

[root@sotneC6 tmp]# touch \ . [root@sotneC6 tmp]# ls . - ! ? @ * # [root@sotneC6 tmp]# touch \ .. [root@sotneC6 tmp]# ls . .. - ! ? @ * #

至此,创建了文件名为- ! ? @ * #和名字包含. …的文件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3