Bash のディレクトリ内のファイルをループする
Bash のループにより、多くのファイルに対して操作を実行できるようになりました。ファイルやフォルダを操作するには、いくつかの権限が必要です。
最も効果的な方法はループです。これにより、ユーザーは単純なコード行を使用して同じロジックをオブジェクトに再度適用できます。
ファイルをループする
まず、test ディレクトリを作成し、ディレクトリ内に複数のファイルを作成します。test ディレクトリに file1.txt、file2.txt、file3.txt、file4.txt、file5.txt の 5つのファイルを作成しましょう。

mkdir を使用して test フォルダーを作成し、touch コマンドを使用してその中に 5つのファイルを作成しました。

ループオーバーディレクトリ
新しく作成された test ディレクトリをループして、ディレクトリ内のファイル名を表示してみましょう。これを行うには、for ループを使用します。
~/test$ for file in *; do echo $file; done
test ディレクトリに移動し、$ の後に上記のコマンドを入力します。*は、ディレクトリ内のすべてのファイルを示します。
出力:
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt
ループを使用してディレクトリ内にすべてのファイルを書き込む
Hello World!を作成するには各ファイルで、for ループを使用してファイルを反復処理し、echo の -e フラグを使用して改行を保持します。
~/test$ for file in *; do echo -e "$file\nHello World!"> $file ; done
$file はファイルの先頭にファイル名を表示し、\n は行を区切り、Hello World!は 2 行目にプレビューされます。ファイルに追加したデータを確認するには、cat と for ループを使用してデータを表示する必要があります。
~/test$ for file in *; do cat $file ; done
出力:
file1.txt
Hello World!
file2.txt
Hello World!
file3.txt
Hello World!
file4.txt
Hello World!
file5.txt
Hello World!
ディレクトリ内のすべてのファイルのバックアップを作成する
.bak 拡張子はバックアップファイルを示します。バックアップを作成するには、cp と for ループを使用します。
~/test$ for file in *; do cp $file "$file.bak" ; done
ls -l を使用して、test ディレクトリ内のすべてのファイルを一覧表示できます。
~/test$ ls -l
test ディレクトリをチェックしてみましょう。

フォルダ内に .bak 拡張子が付いたバックアップファイルが作成されていることがわかります。