web-dev-qa-db-ja.com

古いmc出口ディレクトリの動作を復元する

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関数なので、この定義の場所を検索するか、何らかの方法で設定を解除する必要があります。私は後の訪問者を助けるためにこの追加を配置しました。

2
Notinlist

私のシステムには

$ 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エイリアスを無効にします。

1
hlovdal