unix - 在 unix shell 中生成随机文件名

标签 unix shell random tcsh

我想在unix shell(比如tcshell)中生成一个随机文件名。文件名应由随机的 32 个十六进制字母组成,例如:

c7fdfc8f409c548a10a0a89a791417c5

(我将添加任何必要的内容)。重点是能够仅在 shell 中完成此操作,而无需借助程序。

最佳答案

假设您使用的是 Linux,以下内容应该可以工作:

cat /dev/urandom | tr -cd 'a-f0-9' | head -c 32

如果你的系统运行时熵较低,这只是伪随机的,但(在 Linux 上)保证会终止。如果您需要真正的随机数据,请使用 /dev/random 而不是 /dev/urandom。此更改将使您的代码阻塞,直到有足够的熵可产生真正的随机输出,因此可能会减慢您的代码。对于大多数用途,/dev/urandom 的输出足够随机。

如果您使用的是 OS X 或其他 BSD,则需要将其修改为以下内容:

cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32

关于unix - 在 unix shell 中生成随机文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2793812/

相关文章:

bash - 如何在 UNIX 中将 "19-FEB-12"之类的字符串转换为纪元日期

sql - 在SQL语句中使用Shell脚本的优缺点

python - scipy 使用什么方法从连续分布中选择随机值?

c++在循环中定义一组概率分布

c - 在终端应用程序中检测用户操作系统,C

c++ - 将整数转换为信号代码中的函数指针 - 为什么这样做有效?

c++ - 最优锁文件方法

shell - 如何从 CLI 控制 Cisco IP-Phone?

bash - 从 shell 脚本中的函数返回值

random - 在 Swift 中生成一个范围内的随机整数的最简单方法是什么?