问题:
在脚本中有一句find和xargs配合使用的命令如下
1 | if [ ${BACKUP_EXCLUDE} -eq 0 ]; then |
老是会出现“xargs: unmatched single quote”错误,检查发现是因为某些文件名有空格或其他特殊字符导致。想问一下是否有解?曾尝试过在find中使用参数”-print0″配合xargs -0,但是没法分行。高手帮忙!谢谢先!
抱歉, 我的说明不是很详细导致把各位的思路弄乱了。
首先,出现问题的语句是代码里第二个find语句
其次,该语句作用是找出所有的文件并通过管道过滤排出部分结果,然后产生找出文件的目录名,最后合并同类项输出
我曾尝试过在在find指令中加入-print0,但是无法通过grep;如果写成find … -print0 -exec grep -v -E … ”{}” ; |xargs -0 -i dirname “{}”|uniq,会出现奇怪的结果!
解决方法
对grep后的输出转换成NULL字符结尾的字符流,结合xargs -0
1 | if [ ${BACKUP_EXCLUDE} -eq 0 ]; then |