递归重命名文件并将其移动到单个目录内

递归重命名文件并将其移动到单个目录内

我在 CentOS 上有一个有 50 万用户的项目。图片文件/目录结构设置如下(是的...我知道):

  • user/0070/这是用户 ID / 1000,因此 [70000-70999] 范围内的所有用户都在此目录内
  • user/0070/70909/这是用户 ID
  • user/0070/70909/p.jpg个人资料图片 (100x100)
  • user/0070/70909/x.jpg全尺寸图片

我正在将所有内容移至 CDN,因此我需要将该结构转换为以下内容:

  • user/70909.p.jpg个人资料图片 (100x100)
  • user/70909.x.jpg全尺寸图片

当然,在一段时间内实现此目的的唯一方法是执行一个脚本,该脚本重命名并移动一个目录中的所有文件。有什么想法吗?谢谢!

答案1

在bash中:

cd user
for i in *; do
    for j in $i/*; do
        for k in $j/*; do
            mv $k `basename $j`.`basename $k`
        done
    done
done

相关内容