ターミナルで複数のファイルを作成するには?

私はC言語の入門書を使ってプログラミングを学んでいますが、構文を暗記するためにすべての例やタスクを書き留めています。今まではすべてのファイルを手動で作成していましたが、クリックしたり、名前を付けたり、保存したりするのに疲れてしまいました。

そこで、bspl0001.c, bspl0002.c, bspl0003.c などの複数のファイルを作成し、それらを "learning_c" などのディレクトリに保存する方法が必要です。

私はUbuntu / Linuxの初心者で、正直なところ、IDEのGeanyの設定が簡単だったので、VirtualBox経由でしか動かしていません。そのため、Terminalがどのように動作するのかよくわかりません。

*この古いアカウントで、なぜコードの構文を暗記しようと思ったのか、頭を悩ませています。興味深いことに、私はCS / Math 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 myfilemyfile という空のファイルを作成します。

    • これに続く醜いコード(bspl{0001..0003}.c)は brace expansion と呼ばれます。これは bash シェルの優れた機能で、任意の文字列の組み合わせによる長いリストを作成することができます。これについては、Bash Hackers Wikiで詳しく説明されています。今回の例では、touchに渡すパラメータの長いリストを作ります。これに相当する長いリストを使うこともできます。

          touch bspl0001.c bspl0002.c bspl0003.c
    • ファイルの数を変更することができます。12個のファイルが欲しい場合は、bspl{0001..0012}.cを実行します。

    • 先頭のゼロ(12ではなく0012)は、出力がゼロパディングされた4桁の数字を使用するようにしています。

解説 (7)

ショートカットキーの組み合わせで正しい番号の(次の)ファイルを作成する

なぜ一度にすべてのファイルを作成するのですか?デメリットとしては、空のファイルや使わないファイルがたくさんできてしまうことです。私が実際に使用しているもの:キーの組み合わせを押して

  1. スクリプトに、私のcodeディレクトリの中で、どのファイルが"next"であるべきかを確認させる。
  2. 正しい名前のファイルを作成する(shebangを含む)。
  3. 新しいファイルをエディタ(私の場合はIdle)で開く。

すべて1回のキー操作で完了します。このようにして、多くの(まだ使われていない)ファイルを防ぐことができます。ファイルは必要なときにだけ作成されます。

以下は簡易版です(ステップ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.headセクションに、お使いのディレクトリへのパスを設定します(オプションとして、ベース名や拡張子の変更、shebang)。 3.スクリプトを create_empty.py として保存します。 4.ショートカットからスクリプトを実行します。システム設定 > キーボード > カスタム ショートカット。コマンドを追加します。

    python3 /path/to/create_empty.py
解説 (0)

以下の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
解説 (0)