当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

我一直在用一本非常酷的C语言入门书来学习编程,我写下了每个示例和任务,这样我就可以真正地学习语法。到目前为止,我一直手动处理每个文件,但是单击,命名和保存都用尽了。

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

我是Ubuntu /Linux的新手,老实说只能通过VirtualBox运行它,因为IDE Geany易于设置。因此,我真的不知道终端机的工作原理。

编辑我刚刚在我的这个旧帐户中找到了自己,并为自己为什么要内心学习代码语法而摇了摇头。有趣的是,我的CS /数学BSc学习几乎完成了。非常感谢您的后见之明!

最佳方法

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

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)被称为大括号扩展。这是bash Shell的一项重要功能,可让您创建任意字符串组合的长列表。您可以在Bash Hackers Wiki中了解更多信息。在这种情况下,您将制作一长串将传递给touch的参数。您还可以使用其长等效项:

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

    • 前导零(0012而不是12)确保输出使用zero-padded 4位数字。

次佳方法

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

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

  1. 在我的代码目录中看到一个脚本,该脚本应该是”next”文件,

  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
    

第三种方法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10720.html,未经允许,请勿转载。