1

ディレクトリ入力を受け入れるシェルスクリプトがあります。処理したいディレクトリの 1 つが離れた場所にあります。リモート ホストに SSH 接続できますが、Windows の UNC パスと同様の方法でリモート ディレクトリを参照できるようにしたいと考えています (Windows では、「\[リモート ホスト][共有]」と入力してそのパスを参照できます)。バッチファイルで)。Unix で ssh を使って同様のことを行うきれいな方法はありますか? シェル スクリプトを呼び出すときに、次のように入力できるようにしたいと考えています。

./run_shell_script.sh ssh://<host>/<path>

その1つのディレクトリを処理するためだけに追加のコマンドを実行する代わりに? これは、ループ内のディレクトリのリストに対して行われているため、リモート ディレクトリ用の特別なコードは必要ありません。

4

1 に答える 1

1

考えられる解決策の 1 つは、次のように URI を解析することです。

_uri=ssh://host/path/to/file
_host=`echo $_uri | sed 's|^ssh://\([^/]*\)/.*$|\1|'`
_dir=`echo $_uri | sed "s|^ssh://$_host/\(.*\)\$|\1|"`

そして、これらの変数を使用してsshします。

scp $_host:$_dir $local_dir

また、sshfsあなたにとって興味深いかもしれません.NFS管理の負担やルート権限さえもなしに、リモートホストをローカルマシンのディレクトリにマウントできます.

于 2013-02-27T20:13:10.447 に答える