#ext #e2fsprogs #chattr #lsattr #e2fslibs

e2p-fileflags

从e2fsprogs的lsattr和chattr中读取和设置ext2/ext3/ext4/btrfs/xfs/f2fs文件标志

1个不稳定版本

0.1.0 2023年3月19日

#581 in Unix API


cargo-artifactory-token中使用

MIT许可

14KB
189

e2p-fileflags: 从e2fsprogs的lsattr和chattr中读取和设置ext2/ext3/ext4/btrfs/xfs/f2fs文件标志

CI license crates.io docs.rs

e2p-fileflags提供了对Linux文件标志的访问。存在的标志取决于使用的文件系统。该crate使用libe2p作为后端,它起源于e2fsprogs,支持ext2、ext3、ext4、btrfs、xfs和f2fs文件系统的标志。

示例

use std::fs::File;
use e2p_fileflags::{FileFlags,Flags};

let f = File::create("./foo/bar.txt")?;
f.set_flags(Flags::NOCOW)?;
println!("Flags: {:?}", f.flags()?);
use std::path::Path;
use e2p_fileflags::{FileFlags,Flags};

let p = Path::new("./foo/bar.txt");
p.set_flags(Flags::NOCOW)?;
println!("Flags: {:?}", p.flags()?);

需求

  • libe2p,包括开发头文件。目前,需要版本1.42.4的libe2p。如果您需要支持旧版本,请提交一个问题并说明所需的版本。

    Linux发行版通常将这些软件包打包在以下名称之一下

    • e2fsprogs(-dev)
    • e2fslibs(-dev)
    • libext2fs(-dev)
  • 构建e2p-sys依赖项需要libclang。这有时被包装为libclang1。

请注意,在libe2p更新后,您可能需要重新构建e2p-sys和此crate,以获取任何新引入的标志。

依赖项

~1.2–4MB
~73K SLoC