如何使用终端在不同的目录中将文件复制 x 次?

如何使用终端在不同的目录中将文件复制 x 次?

我正在尝试将图像文件复制到不同的文件夹 x 次(100 次)。如何在终端中执行此操作?

我已成功在同一个文件夹中复制,但我需要在另一个文件夹中复制。

到目前为止,我已经尝试过这个:

i=10; while((i++ < 100)); do cp index "index$i"; done

请协助。

答案1

只需在文件名前添加目录名:

i=0; while ((i++ < 100)); do cp index /destination/directory/"index$i"; done

替换/destination/directory为实际的目录名称。

答案2

假设您要复制的文件位于当前工作目录中。根据需要
将其替换/path/to/destination为真实目录的路径。
index如有必要,应将其替换为真实文件名:

for i in {1..100}; do echo cp -v -- index /path/to/destination/"index-$i"; done

测试后删除echo,然后重复命令以实际复制文件

为便于排序,最好将数字设置为固定宽度,例如 001,002...010 等,因此您可以使用printf

for i in {1..100}; do printf -v new "index-%03d" "$i"; echo cp -v -- "index" /path/to/destination/"$new"; done

或更易读

for i in {1..100}; do
  printf -v new "index-%03d" "$i"
  echo cp -v -- "index" /path/to/destination/"$new"
done

相关内容