s3fs 卸载:目录不为空

Ken*_*ams 7 amazon-s3 umount s3fs

我正在使用s3fsosxfuse在我的 Mac 上挂载一个 S3 目录:

s3fs my-bucket-name $PWD/s3
Run Code Online (Sandbox Code Playgroud)

当需要卸载它时,我会这样做:

% s3fs umount $PWD/s3
s3fs: MOUNTPOINT directory /Users/kwilliams/blah/s3 is not empty.
if you are sure this is safe, can use the 'nonempty' mount option.
Run Code Online (Sandbox Code Playgroud)

知道这是安全的-我并非故意在创建任何新文件s3的目录,如果创建了任何新的,我需要知道这件事,所以我可以清理它们或弄清楚发生了什么事。

我也不希望它在尝试卸载时对底层 S3 存储桶执行任何操作(创建、删除)。我不确定该nonempty选项会做什么。

当我这样做时ls,该目录肯定显示为非空,因为它向我显示了存储桶的内容。

最后 - 消息说我可以use the 'nonempty' mount option- 是说我应该在挂载时使用该选项,还是在卸载时可以使用它? s3fs --help并不表示s3fs umount可以采取任何选择。

Ken*_*ams 22

好吧,我觉得很傻 - 我在发帖后就想出了答案。我不应该做s3fs umount $PWD/s3,只是umount $PWD/s3

前者大概是试图安装另一个umount在安装前一个的同一路径上调用的存储桶。

  • 如果我能投两次票,我会的。我也犯了同样的错误。 (2认同)
  • 不傻——包括我在内的其他 37 个人似乎也有同样的问题。 (2认同)

小智 8

在正常情况下,您可以简单地使用 umount 从根目录卸载目录

$ umount /mountpoint
Run Code Online (Sandbox Code Playgroud)

对于非特权用户

fusermount -u /mountpoint
Run Code Online (Sandbox Code Playgroud)

否则,如果显示设备或资源繁忙/目录不为空/权限被拒绝,则使用此直接卸载

umount -l /mounthpath
Run Code Online (Sandbox Code Playgroud)

如果不再需要,请执行 rm -rf /path 。仅供参考:需要有关 s3fs 的更多详细信息https://www.mankier.com/1/s3fs#