我有此文件结构:
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
但是我不知道该怎么做。
感谢您的帮助
我对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!
希望对您有所帮助。