我一个项目的代码上线,是先checkout出代码然后整体copy过去的,可以避免在线上直接svn拉代码时候影响服务。
其中有这么两句:
find . -type d -name ".svn" | xargs rm -rf
find script/ -type f -exec dos2unix -o {} \;
感觉xargs和exec很像,就学习了一下两者的使用和区别。
-exec
1.参数是一个一个传递的,传递一个参数执行一次rm
2.文件名有空格等特殊字符也能处理
-xargs
1.一次将参数传给命令,但可以使用-n控制参数个数
2.处理特殊文件名需要采用如下方式,重点在那个-0上:
find . -name “*.txt” -print0 |xargs -0 rm {}
技巧: find -print0 与 xargs -0 的结合避免文件名有特殊字符如空格,引号等无法处理:
find . -name “*.txt” -print0 |xargs -0 rm {}

本文通过具体的实例对比了find命令中-exec与-xargs选项的功能差异,详细介绍了如何使用这两种方式来处理文件操作,特别是在文件名包含特殊字符的情况下的处理方法。
788

被折叠的 条评论
为什么被折叠?



