-3

私はこのファイルを持っています:

/root/.aria2/aria2.txt

そして、私はそれを次の場所に移動したい:

/var/spool/sms/発信/aria2_XXXXX

XXXXX はランダムな文字であることに注意してください。

openwrt(組み込みデバイス用の GNU/Linux ディストリビューション) とashシェルによって公開されている機能のみを使用して、これを行うにはどうすればよいですか?

4

3 に答える 3

1

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}
于 2014-12-20T06:20:13.370 に答える
0

システムで/dev/randomは、次のようなランダムなASCII文字の文字列を取得できます

dd if=/dev/random count=1 |
tr -dc ' -~' |
dd bs=8 count=1

2 番目のインスタンスの を必要な文字数に設定しbs=ます。

同じ結果が 2 回得られる可能性は非常に低いですが、許容範囲を教えてくれませんでした。シナリオで許容できる確率を理解する必要があります (または、私たちが理解できるように支援する必要があります)。

于 2014-12-20T08:58:14.790 に答える
0

tempfileコマンドを使用する

mv aria2.txt `tempfile -d $dir -p aria2`

詳細については、を参照man tempfileしてください。

于 2014-12-20T09:07:29.397 に答える