我想复制粘贴文件然后重命名,我怎么做我的情况?

时间:2017-07-27 02:19:18

标签: copy rename copy-paste file-rename

我有许多有序编号的文件(001~099),其中包含名为“red”的同一文件。所有这些文件都在一个目录中。我想将所有“红色”文件复制到一个文件夹(全局)和我移动的每个“红色”文件我想通过其父文件夹重命名它,例如001,002..etc ..

我知道如何复制移动和重命名,但我不知道如何将它们放在一起

所以我做了

cp~ / 00 * / red~ / global mv red 001

我想把它变成一个循环并在每次添加文件时添加+1到001但是我失败了

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

for i in {1..99}
do
  number=$(printf "%03d" $i)

  cp ~/$number/red ~/global/$number
done

在bash >=bash-4中,这可能会起作用:

for number in {001..099}
do
  cp ~/$number/red ~/global/$number
done

答案 1 :(得分:1)

此bash脚本应该执行您所描述的内容:

for i in {1..99}
do
  NUMBER="$(printf "%03d" $i)"
  cp ~/$NUMBER/red ~/global/$NUMBER
done

在循环的每次迭代中,变量$ NUMBER被赋予printf命令的输出(打印i的值,在前面用适当的0-padding格式化)。然后$ NUMBER用于指定从001到099的目录名称。

编辑:哎呀,看起来像斯特凡打败了我