ターミナル内の現在のディレクトリのすべてのファイル/フォルダのリストを作成する方法を探しています。これは、ファイルをアクティブにナビゲートおよび編集しているときに自動的に更新されて実行されます。
ターミナルマルチプレクサでなんとか可能だと思います。しかし、現在のプロセスの変更について別のプロセスに通知する方法がわかりません。
実行した場合watch ls -a
1つの分割ビューでは、同じディレクトリ内のファイルが変更された場合にのみ更新され、他の分割ビューのディレクトリが変更された場合は更新されません。
これはどのように達成できますか?
シェル1のPIDを使用し、そのプロセス情報(CWD)を使用して、シェル2のls
を更新できます。
シェル1:
$ echo $$
24678
シェル2:
$ watch ls /proc/24678/cwd/
これで、シェル1でcd
を使用でき、シェル2のビューがシェル2で更新されます(デフォルトでは2秒ごと)。
素晴らしい仕掛け:watch -d
を使用して、連続する更新(ファイルの作成/削除など)の違いを強調することができます。
おそらく Midnight Commander または同様のプログラムがあなたが望むことをしますか?ターミナルウィンドウにファイルの2つのリストをオーバーレイできます。キーボードショートカットがありますが、完全なシェルに切り替えることもできます。