您只需将文件重命名为递增的数字,只需按随机顺序处理它们。
random()REPLY=$randomn=0;zmv“*(.*)(#qo+random)”“${(l[8][0])$((++n))}$1”
这里使用l[长度][衬垫]
左路加法参数扩展标志,将带0的数字左移到8。
示例(此处带有-n个
用于试运行):
$n=0;zmv-n“*(.*)(#qo+random)”“${(l[8][0])$((++n))}$1”mv--21.jpg 00000001.jpgmv--2111.jpg 00000002.jpgmv--111.jpg 00000003.jpgmv--2.jpg 00000004.jpg格式mv--00012.jpg 00000005.jpgmv--211.jpg 00000006.jpg(最小值)mv--10012.jpg 00000007.jpg(百万伏)mv--11.jpg 00000008.jpgmv--1111.jpg 00000009.jpgmv--1.jpg 00000010.jpg(百万伏)
对于随机字符串a-z型
信件和0-9
数字,您可以使用以36为基数的随机数(对于8位长的数字,在0到36#ZZZZZ范围内)
zmodload zsh/mathfunczmv“*(.*)”“${(Ll[8][0])$(([##36]36#100000000*rand48()))}$1”
(添加我
要转换为小写的参数扩展标志)
请注意,虽然可能性极小,但不能保证不会发生任何碰撞(尽管zmv公司
将检测到它并在进行任何重命名之前退出)。
$zmv-n“*(.*)”“${(Ll[8][0])$(([##36]36#100000000*rand48()))}$1”mv--00012.jpg 60m34z1w.jpg格式mv——10012.jpg 4ff2b06p.jpgmv——1111.jpg n2mac2r4.jpgmv--111.jpg dwf72mfg.jpgmv--11.jpg 3nef10qd.jpgmv--1.jpg lggtk364.jpgmv--2111.jpg am7sd85t.jpg格式mv--211.jpg 35n7ebtn.jpg格式mv--21.jpg eussspd7.jpgmv--2.jpg 9jjgiw08.jpg格式
为了避免冲突,可以定义一个铀()
数学函数,根据先前生成的数字的记录列表检查生成的数字,如果看到则重试:
铀(){整数nwhile((见[$((n=rand48()*$1))]++))continue((n))}zmodload zsh/mathfunc函数-M和1typeset-A seen=()zmv“*(.*)”“${(Ll[8][0])$(([##36]urand(36#100000000))}$1”