我想使用我的终端将特定扩展名的前1000个文件复制到目标文件夹,但每次我运行命令
cp `ls -1 11944*.DAT|tail -n 1000` /ftp/BSEG_SRC
它显示错误,如/ ftp / BSEG_SRC是一个目录,参数列表太长。 你能帮助我吗
答案 0 :(得分:0)
参数列表太长,因为当你这样做时:
ls -1 11944*.DAT
它试图构建一个如下的巨大线:
foo bar [...] baz quux
当然,命令行的长度也有限制。好消息是它很容易修复 - 只需使用find
匹配您想要的文件,然后xargs
启动cp
,因为xargs
知道最长时间单个命令的长度是,并将根据需要多次启动cp
:
find -name '11944*.DAT' | tail -n 1000 | xargs -I{} cp {} /ftp/BSEG_SRC
顺便说一下,这里没有指定的排序顺序,因为你原来的问题没有。