SSHFS 是一次性将文件全部复制到本地,还是仅在我 cd 到它们时才复制?

kal*_*cey 13 ssh mount filesystems sshfs

如果我在根目录 sshfs 整个文件系统,这是否意味着它会下载整个根目录?SSHFS 就是这样工作的,它会物理下载整个内容吗?或者它是否在我将文件放入其中时获取文件?我想获取整个根分区,但我担心这会花费一些时间和大量空间。

Jaa*_*ens 21

不,当您挂载远程目录时,sshfs 不会通过网络复制任何文件。当您 cd 到 sshfs 挂载目录时,它甚至不会复制文件。当您 cd 进入一个目录时,sshfs 会获取文件的名称

文件的实际内容只有在您访问文件时才会传输。因此,假设在目录 mydir 中有一个名为 file.txt 的文件,它通过 sshfs 挂载到您的系统上。file.txt 内容的传输开始:

$ cd mydir              # not here
$ ls                    # still not
$ cat file.txt          # now the file is transferred!
Run Code Online (Sandbox Code Playgroud)

这意味着您可以使用 sshfs 安全地挂载整个根文件系统,即使它大于您硬盘驱动器上的所有可用空间。

  • 哇,这是一个很好的答案。 (4认同)
  • 谢谢你的回答。几个后续问题:sshfs 的清理机制是什么?它什么时候删除从服务器中提取的文件?有任何官方文档吗? (2认同)