批量重命名图像到文件夹名称+序列号

时间:2016-11-25 15:58:18

标签: linux bash

我想将子目录中的文件重命名为父目录名+序号。

例如:

hello-images/
    ├── first-black
    │   ├── full_b200056_m.png
    │   ├── full_b200056_x_DSC01973.JPG
    │   ├── full_b200056_x_DSC01978.JPG
    │   ├── full_b200056_x_DSC01988.JPG
    │   ├── full_b200056_x_DSC01994.JPG
    │   ├── full_b200056_x_DSC02003.JPG
    ├── second-atlas
    │   ├── full_b200035_m1.png
    │   ├── full_b200035_x_3926.JPG
    │   ├── full_b200035_x_3928.JPG
    │   ├── full_b200035_x_3931.JPG
    │   ├── full_b200035_x_3944.JPG

深思熟虑的结果:

hello-images/
├── first-black
│   ├── first-black_1.png
│   ├── first-black_2.JPG
│   ├── first-black_3.JPG
│   ├── first-black_4.JPG
│   ├── first-black_5.JPG
│   ├── first-black_6.JPG
├── second-atlas
│   ├── second-atlas_1.png
│   ├── second-atlas_2.JPG
│   ├── second-atlas_3.JPG
│   ├── second-atlas_4.JPG
│   ├── second-atlas_5.JPG

1 个答案:

答案 0 :(得分:1)

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', # also tried: django.db.backends.postgresql 'NAME': 'name', 'USER': 'user', 'PASSWORD': 'my_password', 'HOST': 'localhost', 'PORT': '5432', } } 目录,执行:

hello-images

这是干运行,它将显示要运行的for d in */; do i=1; for f in "$d"/*.*; do echo mv -- "$f" "$d${d%/}_${i}.${f##*.}"; ((i++)); done; done 命令。如果对要进行的更改感到满意,请删除mv以进行实际操作:

echo

扩展形式:

for d in */; do i=1; for f in "$d"/*.*; do mv -- "$f" "$d${d%/}_${i}.${f##*.}"; ((i++)); done; done