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

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

我一直在用一本很棒的 C 语言入门书学习编程,我把每个示例和任务都记下来,这样我就可以背诵语法。到目前为止,我手动完成了每个文件,但点击、命名和保存让人精疲力尽。

我需要一种方法来创建多个文件(如、、bspl0001.c等),并将它们保存在目录“learning_c”或类似目录中。bspl0002.cbspl0003.c

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

编辑我刚刚发现自己翻看了我的旧账户,并摇头叹息,不知道我为什么要死记硬背代码语法。有趣的是,我几乎完成了我的计算机科学/数学学士学位学习。事后看来,非常感谢你的帮助!

答案1

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

mkdir learning_c
cd learning_c
touch bspl{0001..0003}.c

解释:


  • mkdir learning_c

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

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

    • touch是一个用于创建空文件和修改时间戳的工具;我们正在创建空文件。
    • touch myfile将创建一个名为的空文件myfile
    • ()后面的丑陋代码bspl{0001..0003}.c被称为括号扩展。这是 shell 的一项很棒的功能,bash它允许您创建任意字符串组合的长列表。您可以在Bash 黑客维基。在这种情况下,您将制作一个传递给的长参数列表touch。您也可以使用它的长等效项:

      touch bspl0001.c bspl0002.c bspl0003.c
      
    • 您可以更改文件的数量:如果您想要 12 个文件,您可以运行 bspl{0001..0012}.c

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

答案2

您可以使用以下 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"])

然后使用这个命令执行它:

python filecreator.py

答案3

使用快捷键组合创建正确编号的(下一个)文件

为什么要一次性创建所有文件?缺点是您将会有很多空文件和未使用的文件。我实际使用的是:按下组合键来:

  1. 有一个脚本在我的代码目录中查看“下一个”文件应该是什么,
  2. 创建正确命名的文件(包括shebang)并
  3. 在我的编辑器中打开新文件(在我的情况下是 Idle)。

只需按一下键即可。这样,您可以避免大量(仍然)未使用的文件;只有在您需要时才会创建这些文件。

下面是一个简化版本(不运行步骤 3)。每次按下键盘时,它都会创建一个正确编号的文件,例如:

bspl0001.c, bspl0002.c, bspl0003.c etc
#!/usr/bin/env python3
import os
#--- set your code directory below
dr = "/path/to/your/coding_files"
#--- set the desired (base) name extension and shebang below (leave it ""if you don't want an automatically set shebang)
name_initial = "bspl"
extension = ".c"
shebang = ""
#---

existing = os.listdir(dr)
n = 1
while True:
    file = dr+"/"+name_initial+str(n).zfill(4)+extension
    if os.path.exists(file):
        n = n+1
    else:
        with open(file, "wt") as out:
            out.write(shebang)
        break

如何使用

  1. 将脚本复制到空文件中
  2. 在头部部分,设置目录的路径(可选:更改基本名称和/或扩展名,shebang)。
  3. 将脚本保存为 create_empty.py
  4. 从快捷方式运行脚本:系统设置>键盘>自定义快捷方式。添加命令:

    python3 /path/to/create_empty.py
    

答案4

刚刚偶然发现这个页面正在寻找其他东西...如果其他人需要这样做,我认为最简单的方法是使用触摸和 for 循环。

for i in {1..10}; do touch file$i.txt; done

这将在工作目录中创建 file1.txt 至 file10.txt。当然,您也可以指定目录,例如

for i in {60..69}; do touch ./texts/file$i.txt; done

这将在目录 ./texts 中创建 file60.txt 至 file69.txt

干杯

相关内容