linux - 同步一个没有文件的文件系统

标签 linux filesystems synchronization

假设我想将文件系统的数据缓冲区同步到 Linux 机器上的磁盘(在我的例子中是 USB 内存棒分区之一)。

在搜索执行该操作的函数时,我发现了以下内容

DESCRIPTION

  sync()  causes  all buffered modifications to file metadata and 
          data to be written to the underlying file sys‐
          tems.

  syncfs(int fd) is like sync(), but synchronizes just the file system 
                 containing file referred to by  the  open  file
                 descriptor fd.

但是如果文件系统上没有我可以打开并传递给 syncfs 的文件怎么办?我可以“滥用”点文件吗?它出现在所有文件系统上吗?

还有其他功能可以满足我的要求吗?也许通过提供带有主要/次要编号或类似内容的设备文件?

最佳答案

是的,我认为你可以做到。您的文件系统的根目录将至少有一个 inode 用于您的根目录。您可以使用 .-file 来做到这一点。还可以使用 ls -i 查看 inode 编号。

是否可以通过同步挂载文件系统来避免您的问题?性能问题会阻碍吗?你看过重新安装吗?这也可以在特定情况下同步您的文件系统。

我不知道你的应用程序是什么,但我遇到了将文件同步到 FAT32 文件系统的 U 盘的问题。它导致了奇怪的读写错误。我无法想象您应该同步空文件系统的任何其他正当理由。

关于linux - 同步一个没有文件的文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17048460/

相关文章:

c++ - 动态库在c++名称修改错误中使用静态库

php - 开箱即用的 php 目录结构组件

python - 如何在 Python 中的多个异步进程之间进行同步?

C - 信号量未在所有进程上共享

java - 等待java异步调用完成

java - 从 java 程序运行 "rsync"的 link_stat 错误

linux - 暂停脚本不会暂停媒体播放器

linux - catalina.sh 中的 Tomcat 堆设置不起作用

php - 如何使用 PHP 删除包含内容的文件夹

c# - Path.Combine 绝对路径与相对路径字符串