linux 开头是"-" 或者是“--”的文件名 如何进行文件操作 删除复制移动

linux 开头是"-" 或者是“--”的文件名 如何进行文件操作 删除复制移动

执行 复制命令会报错  cp    *.*  /home/ 

因为有个文件名:-zZs0N65xSnO_J7F-7kKIYZLmSRMxDDyeA4463bChwwU3iB3NZgdtttv4461-GTg.jpg

正确的方式: cp  --  *.*  /home/

Linux/Unix系统中有一个文件名叫“-target”,如果我们想对它进行操作,例如要删除它按照一般的删除方法在命令行中输入rm -target命令,界面会提示我们是“无效选项”(invalid option) 
原来由于文件名的第一个字符为“-”,Linux/Unix把文件名当作选项了。我们可以使用“--”符号来解决这个问题。

通过man rm可以知道 
输入rm ./-target或”rm -- -target””命令便可顺利删除名为“-target”的文件。 
如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。

文件系统出现一个文件 -C.html 如何删除/新建? 
直接输入: 
rm -C.html 错 
rm “-C.html” 错 
rm ‘-C.html’ 错 
rm ‘-C.html’ 错 
正确的答案是rm --“-C.html” 
touch ./-demo.sh 或  touch  --  -demo.sh 可以创建

删除文件名开头为-,减号的文件。
 
由于某些原因需要删除很多减号(-)开头的文件。 

这个问题很有趣,一个是文件比较多,第二个是开头是-(减号),文件名容易被解释为参数。 

其实最简单的方法就是:

 rm -f ./--aaa 

我的删除方法很简单,进入目录下执行:

 find ./ -name "-aaa*" -exec rm {} \; 

还有的方法就是
 for i in $(ls |grep "-aaa*"); do rm -f -r -- "$i"; done 

再就是:
 ls|grep "-aaa*"|xargs rm -f -r --
 
posted @ 2024-09-03 15:32  michaelchengjl  阅读(107)  评论(0编辑  收藏  举报