我有这个文件:
/root/.aria2/aria2.txt
我希望将其移至:
的/ var /阀芯/ SMS /呼出/ aria2_XXXXX
请注意,XXXXX是随机字符。
如何仅使用openwrt
(嵌入式设备的GNU / Linux发行版)和ash
shell公开的工具来实现这一点?
答案 0 :(得分:0)
在bash中生成半随机数的一种简单方法是使用date +%N
命令或提供的系统$RANDOM
:
rn=$(date +%N) # Nanoseconds
rn=${rn:3:5} # to limit to 5 digits
或者,使用$RANDOM
,您需要检查您是否有足够的数字用于您的目的。如果5是您需要的位数:
rn=$RANDOM
while [ ${#rn} -lt 5 ]; do
rn="${rn}${RANDOM}"
done
rn=${rn:0:5}
在提供随机后缀时移动:
mv /root/.aria2/aria2.txt /var/spool/sms/outgoing/aria2_${rn}
答案 1 :(得分:0)
在具有/dev/random
的系统上,您可以获得一串随机ASCII字符,例如
dd if=/dev/random count=1 |
tr -dc ' -~' |
dd bs=8 count=1
将第二个实例中的bs=
设置为您想要的字符数。
两次获得相同结果的概率非常低,但您没有告诉我们什么是可接受的范围。您应该了解(或帮助我们帮助您了解)您的方案中可接受的概率。
答案 2 :(得分:0)
使用tempfile
命令
mv aria2.txt `tempfile -d $dir -p aria2`
请参阅man tempfile
了解详情。