首页 理论教育 操作名字首字母为减号的文件-LinuxShell编程

操作名字首字母为减号的文件-LinuxShell编程

时间:2023-11-18 理论教育 版权反馈
【摘要】:如果遇到一个名字的首字母为减号的文件,如何删除它呢?在名字首字母为减号的文件名前加./或者“--”,就可以正常操作该文件。将一个文件复制为某个目录下的文件名首字母为减号的文件时,或者删除某个目录下的文件名首字母为减号的文件时,不需要使用./或者--,例如:因为这时命令中的减号不出现在参数的最前面。

操作名字首字母为减号的文件-LinuxShell编程

如果遇到一个名字的首字母为减号的文件,如何删除它呢?试试用命令rm删除它:

978-7-111-48202-4-Chapter03-187.jpg

因为Linux命令的选项是以减号开头的,所以执行rm-a.txt时,减号后面的字符会被认为是选项,而rm命令没有这样的选项,故运行出错。仔细看上面提示信息后两行,再运行rm--help看帮助,就知道办法了。在名字首字母为减号的文件名前加./或者“--”(两个减号和一个空格),就可以正常操作该文件。即运行rm./-a.txt或者rm---a.txt可以删除-a.txt。

产生这样的文件的方法和删除它的方法是一致的。如命令touch---b.txt和touch./-b.txt可以产生空文件-b.txt;命令gedit,nedit和vi后面跟---c.txt或者./-c.txt可以编辑文件-c.txt;命令cp z.txt---x.txt和cp z.txt./-x.txt的作用是将文件z.txt复制为-x.txt。

把-a.txt变为./-a.txt可以解决问题,是因为这样就避免了减号出现在一个参数的最前面,减号后的字符就不会被误认为是选项;把-a.txt的前面加上--可以解决问题,是因为Bash规定,命令行中--后面的东西不被认为是选项,而被认为是文件名或者其他参数,见表10-1。(www.xing528.com)

将一个文件复制为某个目录下的文件名首字母为减号的文件时,或者删除某个目录下的文件名首字母为减号的文件时,不需要使用./或者--,例如:

978-7-111-48202-4-Chapter03-188.jpg

因为这时命令(如rm/tmp/-ss.txt)中的减号不出现在参数的最前面。

本节讲的问题,在工作中比较少见,倒是在面试的时候很可能遇到。但是,通过学习本节内容,可以加深对某些概念的理解。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈