在Linux上反复移动文件

找到./dir -type f -iname“* .t [argz] * [bz2]” – print | xargs mv –target-directory = dir
似乎在名称中包含空格的文件上失败.
怎么改进呢?还是另类?

谢谢你的回答:我的mv不支持–null或-0,我正在使用cygwin:

$mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments t
.

解决方法:

在find命令上使用-print0而不是-print,以及xargs -0(或–null)选项 – 然后NUL将用作分隔符而不是换行符和空格.

find ./dir -type f -iname "*.t[argz]*[bz2]" -print0 | xargs --null mv --target-directory=dir
上一篇:Xargs用法详解(转载)


下一篇:linux – 使用find和xargs删除带有rm的文件