我有一堆文件夹,它们都具有相同的名称或迭代编号……例如 Material 01、Material 02、Material 181 等。里面有很多名称正确的视频文件。我需要将文件夹重命名为与该文件夹中的第一个文件同名(按名称排序)
Mac 终端通常使用 bash,所以类似这样的事情应该可以解决问题:在您拥有文件夹的目录中:将其放入名为 rename.sh 的文件中,然后键入bash rename.sh
并按 Enter:
#! /bin/bash
for dir in Material*; do
while read -rd ''; do
newname=$(basename -- "${REPLY%.*}")
break
done < <(find "$dir" -maxdepth 1 -not -name '.*' -type f -print0 | sort -z)
echo "dir:${dir} new:${newname}"
mv -n "$dir" "$newname"
done
假如说:
注意:文件夹将根据文件名命名,没有扩展名。但是,如果您还想为文件夹的新名称添加扩展名,则可以将 while 循环中的第一行替换为newname=$(basename -- "$REPLY")
此解决方案还使用 忽略隐藏文件-not -name '.*'
,并且能够处理包括换行符在内的文件名。但在我看来,在文件名中使用换行符通常是一个坏主意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句