027-老男孩教育每日一题-当你删除的多个文件中包含空格或其他特殊字符改怎么办

  • A+
所属分类:运维每日一题

大家好这是老男孩教育每日一题第27篇。

当你删除的多个文件中包含空格或其他特殊字符,请问如何做

别上来就rm -f oldboy*.log哟。

前言

这是大家工作中可能会遇到的比较坑的时候。
尤其是先用find命令找到你要处理的文件然后通过|xargs rm 或 cp 或 mv 经常报错。

注意:对于find命令还不是很熟悉的同学,请参考前几天的find命令的题目。

老男孩教育每日一题-2017年4月10日-find命令题目

https://www.drscrewdriver.com/125.html

老男孩教育每日一题-2017年4月10日-find查找到文件并复制系列题目

https://www.drscrewdriver.com/126.html

  • 遇到的问题

然后我这里不删除,通过ls-l 给大家演示。

因为文件中的特殊字符常见的就是空格,一般如果一个文件我们就转义一下空格就行\空格,但是文件太多了,这就没办法玩了。

这里介绍一个find命令的参数 -print0(注意这是数字0),表示find在找到文件后在文件的结尾加上一个标记,不用默认的空格分隔文件。

加上参数后,find命令找到的每个文件会在文件结尾加上一个标记(空符号)

正巧了,xargs 也有个参数专门识别这个空标记,-0(数字0)。

  • 解决方法就是:

注意:如果你不给xargs加上-0参数,命令也会提示你的。

xargs提示:警告:我在读取前面命令给我的文件的时候,发现了空字符。这玩意我处理不了啊!!!给你指条路,xargs 加上--null(等同于-0)参数就可以处理了。

linux还是很可爱的吧。

小结

这就是find命令的参数-print0的作用,一般处理这些文件名包含特殊符号的比如空格啥的,很方便。

今天是老男孩教育每日一题陪伴大家的第27天。

往期题目索引

http://www.drscrewdriver.com/100.html

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: