我有一个文件夹(苹果),其中包含文件
doc001.jpg
doc002.jpg
...
doc010.jpg,
另一个文件夹(banana)也包含文件
doc001.jpg
...
doc150.jpg
我怎样才能将 apple 的内容插入到 banana 中间并重命名它们?这样 banana 文件夹就有了它现有的doc050.jpg
文件
apple/doc001.jpg
变成
banana/doc051.jpg
及以后,之前的banana/doc051.jpg
throughbanana/doc150.jpg
被重命名banana/doc060.jpg
为 through banana/doc160.jpg
?
答案1
这不是最优雅的解决方案,但它很容易理解并且可以发挥作用:
制作一个新的香蕉文件夹
mkdir banana.new
复制前 50 个文件(由于前面有
0
s,所以这比需要的稍微难一些):for i in {1..9}; do cp banana/doc00$i.jpg banana.new/; done for i in {10..50}; do cp banana/doc0$i.jpg banana.new/; done
获取苹果的文件并重命名
i=51; find apple/ -type f | sort | \ while read n; do cp $n banana.new/doc0$i.jpg; let i++; done
获取 banana 的其余文件并重命名
for i in {51..89}; do \ let n=$i+10; cp banana/doc0$i.jpg banana.new/doc0$n.jpg; done for i in {90..99}; do \ let n=$i+10; echo "cp banana/doc0$i.jpg banana.new/doc$n.jpg"; done for i in {100..150}; do \ let n=$i+10; cp banana/doc$i.jpg banana.new/doc$n.jpg; done
至此,banana.new
应该就完全符合你的要求了。确保它是然后将其重命名为banana
。