OSX:如何通过在其父文件夹的名称前添加一些文件来递归重命名?

问题描述 投票:0回答:1

我有此文件结构:

files
-- folder1
---- text.json
-- folder2
---- text.json
-- folder3
---- text.json

我想在每个text.json之前添加文件夹名称,所以我会在最后得到这个名称:

files
-- folder1
---- folder1_text.json
-- folder2
---- folder2_text.json
-- folder3
---- folder3_text.json

但是我不知道该怎么做。

感谢您的帮助

macos command
1个回答
0
投票

我对bash一无所知,但需要执行此任务,所以我编写了这个迷你脚本。

要运行它,请将其复制/粘贴到终端中,或使用内部代码创建一个file.sh

注意:-不要忘记用父文件夹路径替换path变量。-我建议您先尝试使用测试文件夹。

#!/bin/bash
path=~/Documents/yourparentfolder/
for folder in "$path"/*; do
  foldername=${folder##*/}
  for file in "$path"/"$foldername"/*; do
    filename=${file##*/}
    mv "$path"/"$foldername"/"$filename" "$path"/"$foldername"/"$foldername"_"$filename"
  done
  echo $foldername files renamed! 
done
echo finished!

注释版本:

#!/bin/bash

# path of parent folder
path=~/Documents/yourparentfolder/

# for each folder in parent folder
for folder in "$path"/*; do

  # get folder name
  foldername=${folder##*/}

  # for each file in folder
  for file in "$path"/"$foldername"/*; do

    # get file name
    filename=${file##*/}

    # rename path/folder/filename to path/folder/folder_filename
    mv "$path"/"$foldername"/"$filename" "$path"/"$foldername"/"$foldername"_"$filename"

  done

  echo $foldername files renamed! 

done

echo finished!

希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.