2017-07-27 116 views
0

我有很多有序编号的文件(001〜099)包含相同的文件,名为“红色”。所有这些文件都在一个目录中。我想将所有“红色”文件复制到一个文件夹(全局),我想移动每个“红色”文件,通过其父文件夹对其进行重命名,例如, 001,002..etc ..我想复制粘贴一个文件,然后重命名它,我怎么做我的情况?

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

,所以我做

CP〜/ 00 * /红〜/全球 MV红色001

我希望把它变成一个循环,并添加+1 001每次添加一个文件,但我失败了

有人可以帮助吗?

回答

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 
+0

非常感谢你,虐待试试吧! – tsumaranaina

1

这个bash脚本应该做你所描述的:

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

在循环的每次迭代中,变量$ NUMBER分配了printf命令的输出(打印出i的值,在前面用适当的0填充格式化)。然后$ NUMBER用于指定从001的目录名099

编辑:哎呦,看起来像斯特凡打我给它

+0

谢谢你的帮助! – tsumaranaina

相关问题