我有一堆文件夹,它们都具有相同的名称或重复的数字,例如Material 01,Material 02,Material 181等。 里面有很多视频文件的名字都正确。我需要将文件夹重命名为与该文件夹中的第一个文件相同的名称(按名称排序)
答案 0 :(得分:1)
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
假设:
注意:该文件夹将根据文件名命名,但没有扩展名。但是,如果您还想在文件夹的新名称中添加扩展名,则可以用newname=$(basename -- "$REPLY")
此解决方案还使用-not -name '.*'
忽略隐藏文件,并且能够处理文件名,包括换行符。但是我认为,在文件名中使用换行符通常是一个坏主意。
答案 1 :(得分:-1)
您可以尝试以下一种方法:
ername = $_SESSION['id'];
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$rand_dir_name = substr(str_shuffle($chars), 0, 15);
$location = "your_location/$username/$rand_dir_name";
mv($location);