对 Linux 和 Windows 使用相同的文件链接

对 Linux 和 Windows 使用相同的文件链接

有可能这样做吗?我的意思是,我可以在 Linux 上创建一个链接,然后使该链接在 Windows 上也有效吗?

用例

我的文件夹/media/Data/DownloadedMusic位于 NTFS 分区上。我的文件夹也位于/media/Data/Music同一分区上。如何在 Music 中创建指向 DownloadedMusic 的链接,以便可以从 Linux 系统和 Windows 系统访问该链接?

答案1

Windows 无法读取 Linux 文件系统。然而 Linux 可以读取 Windows 文件系统。因此,如果您的 /media/Data/Music 位于 Windows 文件系统上,您就可以在 Windows 和 Linux 上访问该空间(相同的文件)。但是,如果它位于 Linux 文件系统上,您只能从 Linux 访问它。

创建 Windows 文件系统 (NTFS) 将是绝对的答案。但是,您会失去 Windows FS 的功能而不是 Linux FS 的功能。

您可以通过制作 Linux 文件服务器并将音乐数据放在服务器上来解决这个问题。然后,您可以从 Linux(通过 samba)和 Windows(通过其本机网络)获得相同的链接。

Linux 文件服务器不需要大量的 PC 电源。您可以拿一台准备转储的旧 PC,将最低的 Linux 配置和硬盘放入其中,并进行非常方便的驱动器访问。

答案2

我见过没有一个命令/方法可以轻松地为您提供此链接,而是您必须使用各种组件自己创建此链接。

对于初学者来说,在 Linux 上,您可以让系统/etc/fstab在启动时随时通过文件自动挂载 NTFS 分区。

/dev/sda2   /mnt/somedir ntfs-3g    permissions,locale=en_US.utf8    1   2

然后在 NTFS 分区中,当它启动到 Windows 时,您可以创建一个连接点或符号链接目录内C:\Data\MusicC:\Data\DownloadedMusic.

我之前没有尝试过,但看起来您也可以从 Linux 端使用命令setattr创建连接点来执行此操作。

# Display the reparse data of the file source-file
$ getfattr -h -e hex -n system.ntfs_reparse_data source-file

# Copy the reparse data of the file source-file
# to the file target-file
$ REPARSE=`getfattr -h -e hex -n system.ntfs_reparse_data source-file | \
         grep '=' | sed -e 's/^.*=//'`
$ setfattr -h -v $REPARSE -n system.ntfs_reparse_data target-file 

参考

相关内容