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

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

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


1、首先,创建文件,创建前缀带-或--文件不能直接使用touch命令,因为会被解释为命令的选项,所以得用追加的形式创建:

[root@clz tmp]# echo >-foo.txt
[root@clz tmp]# echo >-bar.txt


 创建文件后,如果使用ls命令尝试通配符的方式列出文件,则会出现以下报错:

[root@clz tmp]# ls -l *.txt
ls: invalid option -- ‘.‘
Try ‘ls --help‘ for more information.

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

[root@clz 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@clz tmp]# cp -- -foo.txt /opt/
[root@clz tmp]# mv -- -bar.txt /opt/

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

本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1601288

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