usr*_*etc 5 ntfs symbolic-link ntfs-3g interix windows-subsystem-for-linux
在 Linux 中的 NTFS 驱动器 ( ln -s) 上创建的符号链接在 Windows 中显示为包含内容的短文件IntxLNK + 0x01 + (UTF-16 encoded target path)— 可能是Interix。我想编写一个脚本,在 Windows 中启动时使用 WSL 的ln. 但是,我不知道如何检测真正是 Linux 符号链接的短文件,除非查看每个文件的内容,这对于大型文件系统来说会很糟糕,并且对于从魔法开始的普通文件来说会失败。
为什么 NTFS-3g 仍然无法像 Windowsmklink或 WSL2一样创建正确的重解析点ln -s,即使此类 Windows 符号链接在 Linux 下正常工作,并且即使getfattr -n system.ntfs_reparse_data可以读取 NTFS 符号链接数据,也超出了我的范围。它实际上应该只是一个简单的setfattr,尽管我不知道要在属性中放入什么。
那么,有没有一种方法可以使用文件元数据(而不是内容)来检测在 Linux 下创建的符号链接?我确信 Linux 符号链接具有一些特殊属性,因为 NTFS-3g 可以区分包含InterLnkxmagic 的纯文件和包含相同 magic 的实际符号链接。
ntfsinfo我通过使用和比较两个文件——一个由 Linux 生成的符号链接和一个在 Windows 中创建的符号链接文件的副本——找到了答案。
它必须是系统文件(ATTRIB +S在 Windows 上,或在 Linux 上ntfs_attr.sh使用https://gist.github.com/Explorer09/ac4bf6838c271a9968b3 )。一旦系统属性打开,NTFS-3g 就会将该文件视为符号链接,如果关闭它,它就会变成普通文件。那么...开始编写脚本。
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |