Mcの古い動作が必要です。終了すると、mcを開始する前のディレクトリに移動します。私はシステムの唯一のユーザーです。SuseLinuxだと思います。 which mc
コマンドは、ELF実行可能ファイルである/usr/bin/mc
を出力します。 Midnight Commanderを起動した後、プロセスツリーの関連部分は次のようになります。
root 20974 \_ sshd: user [priv]
user 20982 | \_ sshd: user@pts/5
user 20985 | \_ -bash
user 32211 | \_ /usr/bin/mc -P /tmp/mc-user/mc.pwd.20985
user 32213 | \_ bash -rcfile .bashrc
私の疑いは、bash(私が知らないいくつかの構成のためだと思います)はmc
が終了した後に/tmp/mc-user/mc.pwd.20985
を読み取り、現在のディレクトリをそのディレクトリに変更することです。
この構成はどこにありますか?どうすれば無効にできますか?
更新:@ hlovdalに触発された問い合わせ
user@node01:/tmp> which mc
/usr/bin/mc
user@node01:/tmp> type mc
mc is a function
mc ()
{
. /usr/share/mc/mc-wrapper.sh
}
つまり、私のシステムではmc
はbash関数なので、この定義の場所を検索するか、何らかの方法で設定を解除する必要があります。私は後の訪問者を助けるためにこの追加を配置しました。
私のシステムには
$ type mc
mc is aliased to `. /usr/libexec/mc/mc-wrapper.sh'
$ cat /usr/libexec/mc/mc-wrapper.sh
MC_USER=`id | sed 's/[^(]*(//;s/).*//'`
MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
/usr/bin/mc -P "$MC_PWD_FILE" "$@"
if test -r "$MC_PWD_FILE"; then
MC_PWD="`cat "$MC_PWD_FILE"`"
if test -n "$MC_PWD" && test -d "$MC_PWD"; then
cd "$MC_PWD"
fi
unset MC_PWD
fi
rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE
$
これはあなたの行動と一致しているようですので、終了後にディレクトリの変更を無効にするには、mc
エイリアスを無効にします。