私が望むものを再現するための最小限の努力は次のとおりです。
/$ sleep 1h &
[1] 6564
/$ cd
~$ jobs
[1]+ Running sleep 1h & (wd: /)
バックグラウンドプロセスを管理するために使用すると、jobs
作業ディレクトリ(wd)が現在のディレクトリと異なる場合にも表示されます。
表示された作業ディレクトリに簡単に変更する簡単な方法はありますか?私はBash 3.2を使用しています。
私は同様のツールを使用するラッパー機能を探しているのではなく、単にawk
シェルに組み込まれたソリューションを探しています。
ベストアンサー1
プロセスの作業ディレクトリをインポートすることが目的の場合は、次のいずれかの方法を使用してください。
~ » jobs -l
[1] + 14308 running sleep 1h
~ » readlink /proc/14308/cwd
/home/matti-nillu
内部の次の機能は、.bashrc
ユーザーが要求した操作を正確に実行します。
cdjob ()
{
pid=$(jobs -p $1);
d=$(readlink /proc/$pid/cwd);
cd "$d"
}
例:
~$ sleep 1h &
[1] 15102
~$ jobs
[1]+ Running sleep 1h &
~$ cd /
/$ cdjob %1
~$