列出目录中的 X 个随机文件

Ame*_*ina 16 shell zsh files

有没有办法使用标准 Linux 命令从目录中列出一组 30 个随机文件?(在zsh)

此处描述的最佳答案对我sort不起作用(无法识别该选项-R

Ren*_*nan 20

尝试将ls输出通过管道传输到shuf,例如

$ touch 1 2 3 4 5 6 7 8 9 0
$ ls | shuf -n 5
5
9
0 
8
1
Run Code Online (Sandbox Code Playgroud)

-n标志指定您想要多少个随机文件。

  • 这是快速而肮脏的方式,我也会使用它 - 用于一次性脚本。对于更持久的东西,[避免解析`ls`的输出](http://mywiki.wooledge.org/ParsingLs)。 (6认同)

Sté*_*las 8

既然你提到了 zsh:

rand() REPLY=$RANDOM
print -rl -- *(o+rand[1,30])
Run Code Online (Sandbox Code Playgroud)

你可以print用 sayogg123*say替换**/*.ogg