データ移行前にやると便利!!開発用フォルダをスリムにするスクリプトをご紹介

データ移行前にやると便利!!開発用フォルダをスリムにするスクリプトをご紹介

2025.09.23

こんちには。

データ事業本部 インテグレーション部 機械学習チームの中村( @nokomoro3 )です。

PCリプレースの際にデータ移行をしたいのだけれど、ファイル数やファイルサイズが多くてなかなか進まないことはありませんか。

今回は、データ移行前にやると便利な開発用フォルダをスリムにするスクリプトを紹介します。

削除したいフォルダの探索

本記事のメインとなりますが、 node_modules などのファイル数が多いが、移行先ではlockファイルなどで復元できるので、一旦不要になるフォルダが開発用フォルダにはいくつかあると思います。

今回はそれらに類するディレクトリを発見するスクリプトを作成しました。

01_find_dirs.sh
			
			#!/usr/bin/env bash
set -euo pipefail

# node_modules、.mypy_cache、.venv、.next、.terraformディレクトリを検索してlist.txtに出力するスクリプト
# node_modules内のnode_modulesは除外

echo "node_modules、.mypy_cache、.venv、.next、.terraformディレクトリを検索中..."

# 現在のディレクトリ以下のnode_modules、.mypy_cache、.venv、.next、.terraformディレクトリを検索してlist.txtに出力
# node_modules内のnode_modulesは除外(-not -path "*/node_modules/*")
find . -type d \( -name "node_modules" -o -name ".mypy_cache" -o -name ".venv" -o -name ".next" -o -name ".terraform" \) -not -path "*/node_modules/*" 2>/dev/null > list.txt

# 見つかったディレクトリの数をカウント
count=$(wc -l < list.txt)

if [ $count -eq 0 ]; then
    echo "node_modules、.mypy_cache、.venv、.next、または.terraformディレクトリが見つかりませんでした。"
    rm -f list.txt
    exit 0
fi

echo "${count}個のディレクトリが見つかりました。"
echo "リストは list.txt に保存されました。"
echo
echo "list.txtの内容:"
cat list.txt

		

スクリプトはCursorやClaude Codeを活用しながら作成しました。

実行すると、現在のディレクトリ配下を探索します。

			
			./01_find_dirs.sh

		

以下のようなものが list.txt に出力されます。

			
			./project-a/hoge1/node_modules
./project-a/hoge2/.venv
./project-b/fuga1/node_modules
./project-b/fuga2/.next

		

この時点では、消してはいけないものがないか念の為に確認する用に、一旦発見するだけにとどめています。

削除処理

問題なければ、先ほどのリストをベースに削除するスクリプトを、マルチカーソル等を使って以下のように作成します。

02_rm_dirs.sh
			
			#!/usr/bin/env bash
set -euo pipefail

rm -rf ./project-a/hoge1/node_modules
rm -rf ./project-a/hoge2/.venv
rm -rf ./project-b/fuga1/node_modules
rm -rf ./project-b/fuga2/.next

		

圧縮処理

それでもまだファイル数が多い場合は、ある程度のフォルダ単位でtarで固めてしまいましょう。

03_run_tar.sh
			
			#!/usr/bin/env bash
set -euo pipefail

tar cvzf project-a.tar.gz ./project-a 2> tar_project-a.log
tar cvzf project-b.tar.gz ./project-b 2> tar_project-b.log

		

念のため、固めたものはきちんと移行先で展開できるかを確認しましょう。

まとめ

いかがでしたでしょうか。PC交換などのデータ移行の際にぜひご活用ください。

本記事がお役に立てば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事

データ移行前にやると便利!!開発用フォルダをスリムにするスクリプトをご紹介 | DevelopersIO