web-dev-qa-db-ja.com

MSYS2のHOMEディレクトリと開始ディレクトリを変更するにはどうすればよいですか?

MinGW-w64とMSYS2をインストールしました。しかし、どうすればMSYS2のHOMEディレクトリを変更できますか? cd $ homeまたはcd〜と入力すると、定義した別のディレクトリに移動します。

そして、開始ディレクトリが常に.batファイルが置かれる場所になるように、コードをどのように記述しますか?

Cmdでは、次のコードを使用しました。

%〜d1 cd "%〜p1"呼び出しコマンド

デスクトップでcmdを開くと、デスクトップのディレクトリから起動します。

Msys2で同様のことをするにはどうすればよいですか?

18
Coder88

WindowsのホームフォルダーをMSYS2のホームフォルダーとして使用する場合は、/ etc/nsswitch.confを編集して次のように記述します。

db_home: windows
30
dr ganjoo

Msys2は$ HOME dirであるため、Windows%HOME%を使用します。 %HOME%を環境変数に設定すると(Msys2を使用するために必要なWindowsディレクトリーに)、これは機能します。

2
getakanda

シェルの起動スクリプトの1つ(例:~/.bash_profileここで~はデフォルト/元のホームディレクトリ)で、$ HOME環境変数を変更できます。

export HOME=/something/else

シェルをそのディレクトリで開く場合は、$HOMEを設定した後、cdを(引数なしで)実行する必要があります。私はそれをテストしていません。

1
David Grayson

MSYS2を作成または変更する/etc/passwdファイル。これを行う2つの方法を以下に示します。

次のコマンドはMSYS2シェルから実行でき、ファイルが存在するかどうか、および現在のユーザーが既に含まれているかどうかに関係なく、安全に機能します。

$ grep "^${USERNAME}:" /etc/passwd >/dev/null 2>&1 || mkpasswd | grep "^${USERNAME}:" >>/etc/passwd

次に、/etc/passwd、および関連するユーザーのホームディレクトリフィールド(6番目のコロン区切りフィールド)を変更します。

$ vim /etc/passwd

ボーナス:最初のフィールドを編集してMSYS2ユーザー名を変更することもできます。

必要に応じて、現在のホームディレクトリのコンテンツを新しいホームディレクトリに移動します。

ログオフして、再度ログインします。

/etc/passwd編集は手動での編集なしで行うことができますが、これにより、MSYS2シェルに貼り付けるためのより複雑なコマンドラインが作成され、/etc/passwdファイルは既に存在し、ユーザー名が既に含まれています:

__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
0
kbulgrien

HOME変数を設定するバッチファイルを作成しました。

set HOME=C:\Users\%USERNAME%
C:\LocalApp\PortableGit\git-bash.exe

これにより、.bash_profileをこのHOMEに配置できます(パフォーマンスが非常に遅いデフォルトのネットワークロケーションではありません)。

0
Dom Reilly