くりかえし:for
forで複数のファイルを順番に処理します。
👉 for で *.txt 全部のファイル名を順に表示するのが今回のゴールです。
📖 for =「順番にひとつずつ」
同じ作業を、複数のファイルに対して順番に繰り返すためのコマンドです。
Terminal3行版
for f in *.txt
do
echo "$f を処理中"
done
for f in *.txt:「fを1個ずつ*.txtから取り出す」do:「これから繰り返す内容」echo "$f を処理中":その回の作業($fは今の1個)done:「for の終わり」
📦 1行版とよく見る使い方
Terminal1行版
for f in *.txt; do echo "$f"; done
この1行を実行すると、現在のディレクトリの全 .txt ファイル名が、1行ずつ画面に出ます。
🧠 できるようになること
for f in *.txt; do ... doneの形をそらで打てるforの役割を、結果の例から確かめられる- 練習用ディレクトリの中で安全に試せる
🧰 用意するもの
- このページの「🖥 れんしゅうターミナル」(練習用ディレクトリ
linux-tanken入り) - キーボードで英数字と記号を入力できること
🖼 ターミナルの見本
このコマンドを実行すると、こんな結果になります(環境によって少し違うことがあります)。
📺 実行例
$ for f in *.txt; do echo "$f"; done memo.txt names.txt list.txt
⌨️ 今日のコマンド
Terminalれんしゅうターミナル
for f in *.txt; do echo "$f"; done🚀 やってみよう
cd ~/linux-tankenで練習場所に入ります。for f in *.txt; do echo "$f"; doneと入力してEnterキーを押します。$fの中身が1個ずつ変わりながら、do〜done の中が繰り返し実行されます。
💡 探検ポイント
for f in *.txtのfは1回ごとに変わる「今の1個」。手作業を一瞬で終わらせる魔法。
🎮 チャレンジ
*.txtを*.csvに変えて、対象になるファイルのちがいを見よう。for i in 1 2 3; do echo $i 回目; doneのように、ファイル名以外のくりかえしも試そう。- echo の文面を「〜を処理中」から自分の好きなセリフに変えてみよう。
📝 ふりかえり
for f in *.txtのfは何?- 同じことを手作業でやるとしたら、何分かかる?
- forを使いたい場面を1つ思いつく?
❓ うまくいかないとき
- command not found → コマンド名のスペル確認。Tab補完で打ち間違いを防げる
- No such file or directory →
lsでファイル名・パスを見直す - 画面が固まった →
Ctrl + Cでコマンドを止める - 画面が乱れた →
clearまたはCtrl + Lで整理する
👨👩👧 おうちの人・先生へ
この回はLinux初級の安全な操作範囲です。困ったときの対処として「直前のコマンド」「画面に出たメッセージ」をメモしておくと、次回の質問がスムーズになります。
