gpt4 book ai didi

linux - Linux 中 USB 设备的文件系统有任何更改时如何获得通知或如何递归使用 inotify

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:04 25 4
gpt4 key购买 nike

谁能告诉我是否有任何实用程序可以检测所连接的 USB 的文件系统是否有任何更改?或者任何人都可以提供递归 inotify 的示例代码吗?

最佳答案

USB存储设备不包含抽象的"file"。

但它通常有一些 file system (通常是 VFAT ,但也可能是别的东西;我有时会使用 ext4 FS 格式化 USB key ,并且我确实有一个同时带有 VFAT 和 ext4 文件系统的 USB 磁盘)。该文件系统应该是 mounted以便您在其上读取或写入文件。

I want a utility which will notify me if there is any change in file system too.

也许您想使用inotify(7)此类已安装文件系统上的设施;那么这个问题与 USB 设备无关,对于 SATA 磁盘及其上的文件系统也是如此;某些文件系统(尤其是像 NFS 这样的远程文件系统)不能与 inotify 很好地配合。

请注意,USB 存储可以用作 raw disk作为block device (即使通常不这样使用)。在这种情况下,你的问题没有任何意义。此外,USB 存储设备可以有几个 partitions ,所以几个文件系统。您可能需要确定您处理的是哪个文件系统和分区。

您可能需要首先确定从 USB 存储挂载的文件系统(例如使用 proc(5) ,也许 /proc/mounts...),然后使用 inotify 查看其中的更改。

If i will add or delete 1 GB from it ,Is there any utility to get notified ?

您将文件(通过 inode(7) -s)添加到 VFAT 文件系统中(如果没有文件,则无法添加 1Gb)。您可以使用 df(1)来测量其占用情况(您可以使用 watch(1)crontab(5) 来重复该测量)。您还可以通过 incron command 使用 inotify 。您甚至可以使用 ext4 文件系统格式化 USB 磁盘并使用 disk quota设施。

您可能想阅读有关操作系统的更多信息。强烈推荐Operating Systems: Three Easy Pieces 。如果您对 Linux 上的 C 或 C++ 系统编程感兴趣,请阅读一些相关书籍(可能是旧的 ALP 或更新的书籍),然后阅读 intro(2)syscalls(2) .

关于linux - Linux 中 USB 设备的文件系统有任何更改时如何获得通知或如何递归使用 inotify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49606111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com