是否有一个脚本/工具可以让我按照“[用户定义字符串]-N”之类的模式创建 N 个文件,其中 N 是递增的数字,理想情况下从 0 开始直到 10,并且文件的内容是唯一的,这样在搜索重复文件时就不会被标记?
例子:
user-defined-string-01
user-defined-string-01
user-defined-string-02
user-defined-string-03
user-defined-string-04
user-defined-string-05
user-defined-string-06
user-defined-string-07
user-defined-string-08
user-defined-string-09
user-defined-string-10
依此类推,经过指定的迭代次数来创建所需数量的文件?
我一直手动创建它们(作为文本文件,文件名被复制并粘贴为内容),但这很耗时。我使用这些文件作为占位符,当我收到相关文件时会删除它们,并且可以轻松查看我正在处理/等待接收的文件。我需要能够每次使用不同的用户定义字符串,因为名称并非无关紧要。
我在想也许可以将 /dev/urandom 的一小段内容导入到每个文件中以实现唯一性,但我仍然完全不知道如何生成所需数量的文件和所需的命名方案。我基本上没有编写脚本的经验,实际上大多数时候都在使用 Windows,但我想既然我也安装了 Ubuntu,那么使用 Linux 实现这一点的可能性就更大(然后可能在 Windows 上安装 WSL,看看是否允许我在无需启动 Ubuntu 的情况下使用该脚本)
答案1
一个选择是将数据传输到split
实用程序
NAME split - split a file into pieces SYNOPSIS split [OPTION]... [FILE [PREFIX]] DESCRIPTION Output pieces of FILE to PREFIXaa, PREFIXab, ...; default size is 1000 lines, and default PREFIX is 'x'. With no FILE, or when FILE is -, read standard input.
例如,从 /dev/urandom 读取 5 个(默认 512 字节)块,dd
并创建 5 个带有前缀user-defined-string-
和两位数字后缀的文件,起始于00
:
dd if=/dev/urandom count=5 | split -b 512 --numeric-suffixes - user-defined-string-
答案2
在中bash
,您可以使用for ...; do ...; done
带括号扩展的循环(例如{00..10}
或{000..999}
等等。)head -c 256
读取 256 个字节(我认为,超过这个数量就太浪费磁盘空间了,甚至少于这个数量也可以) 从/dev/urandom
和 shell 重定向>
写入user-defined-string-
+ suffix
(01
介于和之间的数字10
) 文件如下:
for i in {01..10}; do head -c 256 /dev/urandom > "user-defined-string-""$i"; done