![](/img/trans.png)
[英]linux: how to batch rename folder name and the file name under folder
[英]Batch rename files to include folder/directory name in linux
我需要一点帮助来完成一个脚本,以便按顺序将文件夹文件重命名为文件夹名称。 我本来以为这将是一个常见的动作,但是在搜索后我似乎找不到确切的信息。 我找到了可以按顺序重命名文件的方法,但是我想将文件夹或目录名称附加到文件的开头。
#!/bin/bash
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" ${a}) #04 pad to length of 4
mv ${i} ${new}
let a=a+1
done
所以我想要这些文件夹和文件:
~/tmp/6856u56u56.jpg
~/tmp/7567787.jpg
~/tmp2/46u65h5hh.jpg
~/tmp2/b656hy6hjh.jpg
看起来像:
~/tmp/UG-tmp-001.jpg
~/tmp/UG-tmp-002.jpg
~/tmp2/UG-tmp2-001.jpg
~/tmp2/UG-tmp2-002.jpg
~/tmp/(text)-(directory name)-(sequential numbering).(extension)
运行脚本后。
有人可以帮我吗? 另外,文件的文件不一定是.jpg,文件夹的名称中可能有空格。 如果这是一个问题,请告诉我。 这适用于使用bash脚本的linux。 如果运行良好,我可能会尝试将其集成到文件管理器的右键单击中。 提前致谢!
查看预期结果,此代码应该可以正常工作
#!/bin/bash
a=1
result=$(printf '%s\n' "${PWD##*/}")
echo $result
filename="text-$result-" #replace text with what you need
for i in *.jpg; do
newfilename="$filename$a.jpg" # since the extension is does not change you can hardcode it
echo $newfilename
mv ${i} ${newfilename}
let a=a+1
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.