如何使用终端创建多个文件?

der*_*nor 60 command-line files batch

我一直在用一本非常酷的 C 入门书学习编程,我写下了每个示例和任务,以便我可以记住语法。到目前为止,我手动完成了每个文件,但是单击、命名和保存变得令人筋疲力尽。

我需要一种方法来创建多个文件,如bspl0001.cbspl0002.cbspl0003.c,等,并将其保存在目录“learning_c”什么的。

我是 Ubuntu / Linux 的菜鸟,老实说只通过 VirtualBox 运行它,因为 IDE Geany 很容易设置。因此,我真的不知道终端是如何工作的。

编辑我刚刚发现自己在我的这个旧帐户中,并且正在摇头为什么我想用心学习代码语法。有趣的是,我几乎完成了我的 CS / Math BSc 学习。非常感谢您事后的帮助!

0x2*_*fa0 103

您可以使用以下命令执行此操作:

mkdir learning_c
cd learning_c
touch bspl{0001..0003}.c
Run Code Online (Sandbox Code Playgroud)

解释:


  • mkdir learning_c

    • 这将learning_c在当前文件夹中创建一个名为的文件夹
    • 当前文件夹通常是您的主文件夹,也称为 ~
    • 您可以使用cd命令(即cd Desktop)更改当前目录
  • cd learning_c

    • 是的,您可以猜到,您正在进入新创建的文件夹
  • touch bspl{0001..0003}.c

    • touch是一个创建空文件和修改时间戳的工具;我们正在创建空文件。
    • touch myfile将创建一个名为myfile.
    • ( bspl{0001..0003}.c)后面的丑陋代码称为大括号扩展。这是bashshell 的一个重要功能,它允许您创建任意字符串组合的长列表。您可以在Bash Hackers Wiki 中了解更多相关信息。在这种情况下,您将制作一长串将传递给touch. 您还可以使用它的长等效项:

      touch bspl0001.c bspl0002.c bspl0003.c
      
      Run Code Online (Sandbox Code Playgroud)
    • 您可以更改文件数:如果您想要 12 个文件,您可以运行 bspl{0001..0012}.c.

    • 前导零(0012而不是12)确保输出使用零填充的 4 位数字。

  • 或者,为了保存一些按键,`touch bspl000{1..3}.c` (4认同)
  • 对于那些想要创建具有相同扩展名`touch {test,tes2,tes3}.js` 的文件列表的人 (3认同)

bol*_*ano 5

您可以使用以下python代码,您可以对其进行修改以满足您的需要。
使用文件名保存以下代码filecreator.py

#!/usr/bin/env python
import os
import subprocess
work_path = os.path.abspath(os.path.dirname(__file__))
if not os.path.exists("learning_c"):
    os.mkdir("learning_c")
os.chdir(os.path.expanduser(work_path+"/learning_c"))
n = 10 #put the number as you wish
for i in range(n):
    subprocess.call(['touch', "bsdl"+str(i).zfill(4)+".c"])
Run Code Online (Sandbox Code Playgroud)

然后用这个命令执行它:

python filecreator.py
Run Code Online (Sandbox Code Playgroud)