参数列表太长,只有 5000 个文件

参数列表太长,只有 5000 个文件

我有一个文件夹5000我想复制到其他地方的文件。

当我这样做时cp ../folder* .,我收到以下错误:

-bash: /bin/cp: Argument list too long

然而,getconf ARG_MAX回报262144

$ echo ../folder* |wc
1 5015 69144

这是正常的吗?我之前已经能够复制所有这些文件。

答案1

使用程序迭代参数:

例如find .. -type d -iname '*/folder*' -exec cp -a {} . \;

手动循环迭代,例如:

for myDir in ../folder* ; do cp -a "$myDir" . ; done

还有很多其他方法,但上述方法之一应该可以满足您的需要。 (for循环示例可能会慢一些)

相关内容