批量将多个目录下的文件重命名成目录名加数字形式

sh/bash/dash/ksh/zsh等Shell脚本
回复
半卷春秋
帖子: 34
注册时间: 2014-03-03 19:34
系统: ubuntu
送出感谢: 3 次
接收感谢: 1 次

批量将多个目录下的文件重命名成目录名加数字形式

#1

帖子 半卷春秋 » 2018-11-22 13:56

我有一个目录,假设叫workspace,里面有多个文件夹,不妨假设有两个,分别为foo,bar文件夹,foo里有a.mp4,b.mp4等文件,bar文件夹里有a.jpg,b.jpg等文件,我希望将workspace目录下每个文件夹里的文件重命名为其所在目录加数字的形式,如foo文件夹改为foo1.mp4,foo2.mp4等等,bar下改为bar1.jpg,bar2.jpg等等,没写过脚本,请问用shell怎么处理,能否一行命令解决?
leafei
帖子: 84
注册时间: 2008-06-29 21:41
送出感谢: 0
接收感谢: 0

Re: 批量将多个目录下的文件重命名成目录名加数字形式

#2

帖子 leafei » 2018-11-23 18:21

代码: 全选

for i in foo bar ; do k=1 ; cd /tmp/workspace/${i} ; for j in *; do mv $j $(basename $(pwd))${k}.$(echo $j | cut -d'.' -f 2) ; let k++ ; done ; done

代码: 全选

/tmp/workspace
改成你的目录,要绝对路径。
回复

回到 “Shell脚本”