【Flutter】Buildフォルダーを削除するbashスクリプト

この記事では、FlutterのBuildフォルダーをまとめて削除するためのbashスクリプトを作成する手順を説明します。

スクリプトの作成

まず、以下の内容でスクリプトファイルを作成します。

# filepath: untitled://untitled/delete_flutter_build.sh
#!/bin/bash

# Mac miniの名前を取得
USER_NAME=$(whoami)

# /users/$USER_NAME/work以下のFlutterのBuildフォルダーを検索
BUILD_DIRS=$(find /users/$USER_NAME/work -type d -name "build")

# プロジェクト名を取得して表示
PROJECTS=$(echo "$BUILD_DIRS" | sed 's|/users/'"$USER_NAME"'/work/\(.*\)/build|\1|')

echo "以下のプロジェクトのBuildフォルダーを削除します:"
echo "$PROJECTS"
echo "これらを消します。よろしいですか? (y/n)"
read -r CONFIRMATION

if [ "$CONFIRMATION" = "y" ]; then
  # Buildフォルダーを削除
  echo "$BUILD_DIRS" | xargs rm -rf
  echo "削除しました。"
else
  echo "キャンセルしました。"
fi

コマンドの説明

  • USER_NAME=$(whoami): 現在のユーザー名を取得します。whoamiコマンドは現在のログインユーザー名を返します。
  • BUILD_DIRS=$(find /users/$USER_NAME/work -type d -name "build"): findコマンドを使用して、指定されたディレクトリ以下のすべての”build”という名前のディレクトリを検索します。
  • /users/$USER_NAME/work: 検索を開始するディレクトリ。
  • -type d: ディレクトリのみを検索対象とする。
  • -name "build": 名前が”build”であるディレクトリを検索する。
  • PROJECTS=$(echo "$BUILD_DIRS" | sed 's|/users/'"$USER_NAME"'/work/\(.*\)/build|\1|'): sedコマンドを使用して、検索結果からプロジェクト名を抽出します。
  • echo "$BUILD_DIRS": 検索結果を標準出力に送る。
  • sed 's|/users/'"$USER_NAME"'/work/\(.*\)/build|\1|': 正規表現を使用して、パスからプロジェクト名を抽出する。
  • echo "以下のプロジェクトのBuildフォルダーを削除します:": メッセージを表示します。
  • echo "$PROJECTS": プロジェクト名を表示します。
  • echo "これらを消します。よろしいですか? (y/n)": 確認メッセージを表示します。
  • read -r CONFIRMATION: ユーザーの入力を読み取ります。
  • if [ "$CONFIRMATION" = "y" ]; then: ユーザーがyと入力した場合の処理を開始します。
  • echo "$BUILD_DIRS" | xargs rm -rf: xargsコマンドを使用して、検索結果の各ディレクトリを削除します。
  • echo "削除しました。": 削除完了メッセージを表示します。
  • else: ユーザーがy以外を入力した場合の処理を開始します。
  • echo "キャンセルしました。": キャンセルメッセージを表示します。

スクリプトの実行

スクリプトを保存したら、ターミナルで以下のコマンドを実行してスクリプトに実行権限を付与します。

chmod +x /path/to/delete_flutter_build.sh

次に、スクリプトを実行します。

/path/to/delete_flutter_build.sh

スクリプトは、/users/your_username/work以下のすべてのFlutterプロジェクトのBuildフォルダーを検索し、削除する前に確認メッセージを表示します。確認メッセージでyを入力すると、Buildフォルダーが削除されます。

これで、FlutterのBuildフォルダーを簡単に削除することができます。

タイトルとURLをコピーしました