最近遇到个棘手问题
linux的备份目录名带空格,普通处理时,for循环默认会以空格为分隔符遍历,这就尴尬了
解决关键点:
使用find 配合xargs
知识点:
xargs 的 -0 参数与 find 命令
find
命令有一个特别的参数-print0
,指定输出的文件列表以null
分隔。然后,xargs
命令的-0
参数表示用null
当作分隔符。
$ find /path -type f -print0 | xargs -0 rm
再配合xargs的-L参数那就更稳妥了
如果标准输入包含多行,-L
参数指定多少行作为一个命令行参数。
$ find /path -type f -print0 | xargs -L1 -0 rm