直接使用Unix/Linux系统uuid文件截取部分生成随机数,同时为了防止重命名过程中有可能已存在和新随机目录同名的一级子目录,即重命名操作失效,mv效果变成了移动旧目录至一级子目录,特意添加了一重循环检测。使用该脚本可以直接修改脚本所在目录的所有同级一级子目录。

#!/bin/sh
for Dir in $(find -maxdepth 1 -type d | sed '1d')
do
    NewDir=$(cat /proc/sys/kernel/random/uuid | cksum | cut -f1 -d" ")
    while [ -d $NewDir ]
    do
        NewDir=$(cat /proc/sys/kernel/random/uuid | cksum | cut -f1 -d" ")
    done
    mv $Dir $NewDir
done