一般来说,我希望在通过分布式文件系统(例如 samba、NFS 或任何您推荐的系统)提供给我的远程文件上运行本地程序,并且我希望以类似于访问本地文件的方式访问远程文件:类似于“位置透明度”。
我对我的文件管理器 pcmanfm 感到惊讶,它可以将远程文件像本地文件一样呈现,并允许我通过右键单击以与在本地文件上运行程序相同的方式在它们上运行一些本地程序。
我想在 CLI shell 中做同样的事情。
例如,我尝试将文件复制到sharesmb
通过远程 samba 守护程序共享的远程目录。我可以在文件管理器中pcmanfm
使用地址执行此操作smb://olive.local/sharesmb on olive.local
。我想在 shell 中执行相同操作,但链接不起作用。你能告诉我如何在 shell 中执行此操作吗?
$ cp 153-158.pdf smb://olive.local/sharesmb on olive.local
cp: target 'olive.local' is not a directory
$ cp 153-158.pdf smb://olive.local/'sharesmb on olive.local'
cp: cannot create regular file 'smb://olive.local/sharesmb on olive.local': No such file or directory
谢谢。
答案1
一般来说,您会将远程文件系统挂载到本地目录并通过该挂载点处理文件。在类 Unix 环境中,这实际上意味着您可以像访问本地文件一样访问远程文件。
不过,根据您想做的事情,有多种选择。午夜指挥官(mc) 的行为类似于您描述的 pcmanfm。如果您只想在机器之间复制文件,您可能需要查看该scp
命令,前提是远程主机运行 sshd(不久前它也可用于 Windows Server 2019)。
答案2
使用 sshfs:
sshfs [email protected]:/path/to/remote/folder /path/to/mountpoint/