找到./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