#!/bin/bash WSL_DIR=/d/WSL2 WSLS="$(wsl --list | sed 1d | cut -d' ' -f 1 | sed $'s/[^[:print:]\t]//g' | head -n -1)" mkdir -p "$WSL_DIR" for WSL in "${WSLS[@]}"; do if [ -d "$WSL_DIR"/"$WSL" ]; then echo "$WSL already moved, continuing" continue fi echo "Exporting $WSL to archive" wsl --export "$WSL" "$WSL_DIR/$WSL.tar" echo "Unregistering $WSL" wsl --unregister "$WSL" mkdir "$WSL_DIR/$WSL" echo "Importing $WSL from archive" wsl --import "$WSL" "$WSL_DIR/$WSL" "$WSL_DIR/$WSL.tar" --version 2 echo "Removing $WSL archive" rm "$WSL_DIR/$WSL.tar" done