在Linux下复制文件时如何保留Windows文件属性?

unf*_*nfa 8 windows files

我正在使用在 Linux 机器上运行的自定义 Bash 脚本来大量复制 FAT32 格式的 USB 驱动器。

我需要保留 Windows 文件属性,例如“隐藏”。

我使用rsync(或ddfindmkdir在新的版本,迫使I / O同步进行更好的稳定性和优化带宽使用)。

我盲目地尝试-X-A切换为rsync,据说可以保留一些文件属性,但它们似乎不适用于 Windows 文件属性。

有没有办法在Linux环境下读写Windows文件属性?

如果没有更简单的方法,我可以在复制后应用它们。

我不想要dd一个完整的源文件系统,因为这将是未经优化的,尤其是当您需要写入数百个驱动器时。有时驱动器的容量为 16GB,其中只有几 GB 的文件 - 一个笨蛋dd会复制所有 16GB,这需要很长时间才能在生产中工作。

我在网上搜索过,但看起来 Linux 扩展属性与 Windows 文件属性无关,而且我还没有找到任何方法来读取和写入这些信息(或者只是将其与文件一起复制)。

Ste*_*itt 1

我可以想出几种方法来处理这个问题。

\n\n

第一种是使用Mtools来复制文件。为此,您\xe2\x80\x99d 需要定义\xe2\x80\x9cdrives\xe2\x80\x9d(例如A:对于源驱动器,B:对于目标驱动器),然后你应该能够复制一切,保留属性和时间戳,使用

\n\n
mcopy -s -p -m a: b:\n
Run Code Online (Sandbox Code Playgroud)\n\n

(未经测试)。

\n\n

第二种是使用fatattr(在大多数发行版中可用)对属性进行后处理。它处理已安装的文件系统,因此您\xe2\x80\x99d 以与当前相同的方式复制文件系统,然后用于fatattr列出所有源文件的所有 FAT 属性,并解析它以指示fatattr适当地设置属性在目标文件上。

\n