我正在尝试在目录之间复制特定文件。所以我列出了所有文件ls
,并添加了行号,cat -n
然后选择了要复制的前100个文件head -100
。之后,我使用了xargs
命令,但是它不起作用。这是代码:
ls * | cat -n | head -100 | xargs -0 cp -t ~/foo/bar
该命令在屏幕上再现文件列表并返回警告File name too long
。
我也尝试过-exec cp -t
,它返回消息-bash: -exec: command not found
。
编辑:我的文件名包含年份(例如1989a,1989b,1991a,1992c),因此我想选择在特定年份(例如1993)之前发布的所有文件。
这将导致100次调用,cp
但是您可以使用循环:
count=0; for i in *; do cp "$i" ~/foo/bar; ((++count == 100)) && break; done
您可以执行此操作的另一种方法是使用数组:
files=( * )
cp "${files[@]:0:100}" ~/foo/bar
全局*
扩展将使用当前目录中的文件列表填充数组。然后复制数组的前100个元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句