我有许多有序编号的文件(001~099),其中包含名为“red”的同一文件。所有这些文件都在一个目录中。我想将所有“红色”文件复制到一个文件夹(全局)和我移动的每个“红色”文件我想通过其父文件夹重命名它,例如001,002..etc ..
我知道如何复制移动和重命名,但我不知道如何将它们放在一起
所以我做了
cp~ / 00 * / red~ / global mv red 001
我想把它变成一个循环并在每次添加文件时添加+1到001但是我失败了
有人可以帮忙吗?
答案 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的目录名称。
编辑:哎呀,看起来像斯特凡打败了我