shell - 在Shell脚本中访问远程目录

标签 shell ssh

我有一个接受目录输入的Shell脚本。我要处理的目录之一是在远程位置。我可以通过SSH进入远程主机,但是我希望能够以类似于Windows上UNC路径的方式引用远程目录(在Windows中,您可以键入“\ [远程主机] [共享]”并引用该路径在批处理文件中)。有没有一种干净的方法可以在Unix上使用ssh做类似的事情?当我调用shell脚本时,我希望能够键入以下内容:

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

而不是运行额外的命令只是为了处理该目录?这是在循环中的目录列表上完成的,因此,我不需要远程目录的特殊代码。

最佳答案

一种可能的解决方案是像这样解析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管理负担,甚至没有root特权。

关于shell - 在Shell脚本中访问远程目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120338/

相关文章:

linux - PubKey SSH Auth 在 CentOS 上失败,但在 Ubuntu 上有效

encryption - 无法为新用户生成有效的 ssh 公钥/私钥对

mysql - 如何通过 shell 命令从 MySQL 转储中恢复单个特定列?

ssh - 如何找到在amazon-ec2中启动的实例的用户名?

linux - Bash-Shell 脚本中止且没有错误

linux - 巴什脚本 : Integrated document creation hangs

linux - 执行shell脚本时出现"No such file or directory"错误

bash - Shell:如何从另一个 Shell 脚本调用一个 Shell 脚本?

linux - 为什么我在数字比较时收到命令未找到错误?

php - 在 PHP 中使用 curl 上传失败