我有文件
/folder/file1.mp4
/folder/file2.wmv
/folder/file3.mov
我需要将它们移动到具有新文件名的新文件夹,该文件夹是从12个符号随机生成的。
/new-folder/345457567452.mp4
/new-folder/890897687685.wmv
/new-folder/235344783456.mov
我该怎么做?
问题是:我不知道原始文件的扩展,我只需要重命名ile的名称并保存扩展名。
答案 0 :(得分:1)
您可以使用参数扩展来提取文件扩展名(${file##*.}
删除最后一个点的所有内容。)
$RANDOM
变量可用于创建随机名称。
for file in folder/file* ; do
newname=''
for i in {1..12} ; do
newname+=$(( RANDOM % 9 ))
done
newname=new_folder/$newname."${file##*.}"
if [[ -f $newname ]] ; then
echo "Target $newname already exists. $file not moved." >&2
else
mv "$file" "$newname"
fi
done