![同步命令实际上同步什么?](https://linux22.com/image/140037/%E5%90%8C%E6%AD%A5%E5%91%BD%E4%BB%A4%E5%AE%9E%E9%99%85%E4%B8%8A%E5%90%8C%E6%AD%A5%E4%BB%80%E4%B9%88%EF%BC%9F.png)
当我sync
作为普通用户执行此操作时,这是否会刷新属于其他用户(包括 root 用户)或属于我自己的所有缓冲区?man
不提供此信息。
我特别询问有关 Debian 9 的问题,但欢迎提供有关 Linux 和 Unix 的更一般的答案。
答案1
该sync
命令使用sync
系统调用。
系统调用手册sync
说:
sync() 会导致对文件系统元数据和缓存文件数据的所有挂起修改写入底层文件系统。
所以同步将刷新所有缓冲区。术语“属于用户”不适用于缓冲区,缓冲区属于文件和文件系统元数据,而不属于用户。多个用户可能会修改同一个文件,文件系统和缓冲区子系统跟踪特定用户的更改是没有意义的。