Create or modify an MSYS2 /etc/passwd
file. Two ways of doing this are shown below.
The following command can be run from an MSYS2 shell, and works safely whether or not the file exists and whether or not it already contains the current user:
$ grep "^${USERNAME}:" /etc/passwd >/dev/null 2>&1 || mkpasswd | grep "^${USERNAME}:" >>/etc/passwd
Next, edit /etc/passwd
, and change the relevant user's home directory field (the 6th colon-delimited field).
$ vim /etc/passwd
BONUS: It is also possible to change the MSYS2 username by editing the first field.
As desired, move current home directory content to the new home directory.
Log off, then log back in.
The /etc/passwd
edits can be done without manual editing, but this makes for a more complex command-line to paste into the MSYS2 shell, and, it might not work if the /etc/passwd
file already exists and has the username in it already:
__DIR="/path/to/home"
mkpasswd | grep "^${USERNAME}:" | \
awk -v DIR="${__DIR}" -v RS=":" -v ORS="/n" \
'NR == 6 { printf(DIR ":"); next } { printf("%s", $0) } NR < 7 { printf(":") }' - >>/etc/passwd