从我当前的目录中我有子目录。我想列出一个子目录,其中包含以449.ss
结尾的文件。
我可以这样做:
find . -iname "*-449.ss" | sed -e 's!/[^/]*$!!' -e 's!^\./!!' | sort -u
但是我想将所有这些目录复制到新目录correct
。我试过了
$ find . -iname "*-449.ss" | sed -e 's!/[^/]*$!!' -e 's!^\./!!' | sort -u | xargs -0 -I{} cp -r {} correct/
cp: cannot stat `polyid4ssnps105\npolyid4ssnps106\npolyid4ssnps107\n': File name too long
我尝试传递给xargs
。但是,这已将列表视为单个字符串。
我哪里出错了?
感谢。
答案 0 :(得分:1)
xargs -l ...
并删除参数-0
man xargs:
-l[max-lines], --max-lines[=max-lines] Synonym for the -L option. Unlike -L, the max-lines argument is optional. If max-lines is not specified, it defaults to one. The -l option is deprecated since the POSIX standard specifies -L instead.