find ./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 .
使用-print0,而不是-print在find命令和xargs的-0(或--null)选项-然后完全无效将被用作分隔符,而不是换行和空格.
find ./dir -type f -iname "*.t[argz]*[bz2]" -print0 | xargs --null mv --target-directory=dir
Run Code Online (Sandbox Code Playgroud)