3.8 批量生成空白文件

有时候我们可能需要生成测试样本。比如我们可能要用程序对 1000 个文件进行操作,那应怎样生成这些测试文件呢?

3.8.1 预备知识

touch 命令可以用来生成空白文件;如果文件存在,则可以用它修改文件的时间戳。让我们来看看如何使用这个命令。

3.8.2 实战演练

用下面的命令可以创建一个名为filename的空白文件:

  1. $ touch filename

批量生成名字不同的空白文件:

  1. for name in {1..100}.txt
  2. do
  3. touch $name
  4. done

在上面的代码中,{1..100}会扩展成一个字符串“1, 2, 3, 4, 5, 6, 7,…100”。除了{1..100}.txt,我们还可以使用其他简写样式,比如 test{1..200}.ctest{a..z}.txt等。

如果文件已经存在,那么touch命令将会与该文件相关的所有时间戳更改为当前时间。如果我们只想更改某些时间戳,则可以使用下面的选项。

  • touch -a 只更改文件访问时间(access time)。

  • touch -m 只更改文件内容修改时间(modification time)。

除了将时间戳更改为当前时间,我们还能够为时间戳指定特定的时间和日期:

  1. $ touch -d "Fri Jun 25 20:50:14 IST 1999" filename

-d使用的日期串不一定总是以同样的格式呈现。-d可以接受任何的标准日期格式。我们可以忽略具体时间,使用“Jan 20 2010”这种方便的日期格式。