红联Linux门户
Linux帮助

Linux如何移动复制删除带特殊文字符前缀(-,--,;)的文件

发布时间:2015-03-15 15:09:43来源:linux网站作者:hehemmm

在Linux系统中,许多元字符,如分号(semicolon),空格(space),反斜线(backslash),美元符号(dollar sigh),问号(question mark),星号(asterisk) 通常被解释为命令,-(dashes)或者--被解释为命令的选项,通过以下的方式就可以复制、移动、删除带-或者--的文件,:


首先,创建文件,创建前缀带-或--文件不能直接使用touch命令,因为会被解释为命令的选项,所以得用追加的形式创建:
[root@linux tmp]# echo >-foo.txt
[root@linux tmp]# echo >-bar.txt


创建文件后,如果使用ls命令尝试通配符的方式列出文件,则会出现以下报错:
[root@linux tmp]# ls -l *.txt
ls: invalid option -- '.'
Try 'ls --help' for more information.


需要在命令加入--分界符选项,分隔开选项和参数:

[root@linux tmp]# ls -l -- *.txt
-rw-r--r--. 1 root root 2192022 Jan  9 09:03 137k.txt
-rw-r--r--. 1 root root      1 Jan  9 16:36 -bar.txt
-rw-r--r--. 1 root root      1 Jan  9 16:36 -foo.txt


相对应的,复制与移动文件的命令使用如下:
[root@linux tmp]# cp -- -foo.txt /opt/

[root@linux tmp]# mv -- -bar.txt /opt/

这个分隔符对于rmdir,rm,ls命令同样有效。