无法创建从“com1”到“com9”开始的文件或目录

sni*_*ich 17 filesystems wine filenames files

我无法创建'com1', 'com2', ..., 'com9'在扩展硬盘中命名的文件夹或文件。我试图在存储游戏的其他驱动器上创建 Wine 前缀,但出现一些错误。

在此输入图像描述

winecfg这是当我运行到新前缀 时整个输出的粘贴箱。https://pastebin.com/SsaAFGdw

我相信这不是权限问题,因为我可以创建目录和文件。而且,我还尝试从主启动驱动器创建前缀,然后将其移动到扩展硬盘驱动器,然后当它现在尝试复制名为'com1', 'com2', ..., 'com9'.

在此输入图像描述

这就是我的扩展驱动器分区的方式: 在此输入图像描述

sudo WINEPREFIX='path' winecfg也不起作用,同样的结果。

编辑:操作系统:Manjaro KDE Plasma

输出来自mount | grep /dev/sdb

/dev/sdb2 on /run/media/snich/Extended type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
/dev/sdb4 on /run/media/snich/Games type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
/dev/sdb3 on /run/media/snich/Personal type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
Run Code Online (Sandbox Code Playgroud)

use*_*089 32

假设使用 ntfs-3g,windows_names可能在某处设置为选项。已查看手册页

\n
\n

选项

\n

窗口名称

\n

此选项可防止使用 Windows 不允许的名称创建文件、目录和扩展属性,因为

\n
    \n
  • 它包含一些不允许的字符,
  • \n
  • 或者最后一个字符是空格或点,
  • \n
  • 或者该名称已被保留。
  • \n
\n

禁止使用的字符为“* / : < > ? \\ |”及编码小于0x20的九个字符,保留名称为CON​​、PRN、AUX、NUL、COM1..COM9、\nLPT1.. LPT9,没有后缀或后跟一个点。

\n

现有的此类文件仍然可以读取(并重命名)。

\n
\n

编辑回复:

\n

我目前使用的是 debian/Buster,并且有一个/etc/udisks2/udisks2.conf文件包含:

\n
\n
### For the reference, these are the builtin mount options:\n# [defaults]\n[...]\n# ntfs_defaults=uid=$UID,gid=$GID,windows_names\n# ntfs_allow=uid=$UID,gid=$GID,umask,dmask,fmask,locale,norecover,ignore_case,windows_names,compression,nocompression,big_writes\n
Run Code Online (Sandbox Code Playgroud)\n
\n

因此,对于 debian 及其大多数衍生产品来说,安装 NTFS 意味着使用选项windows_names。正如同一个文件(稍高一点)中所解释的,您可以尝试将选项放入 \n/etc/udisks2/mount_options.conf文件中。只需编辑/创建文件,复制这两行,删除前导哈希并删除选项windows_names。以 root 身份执行所有操作,并注意权限。

\n

卸载并重新安装。

\n

(现在,我不确定这一切是否是一个好的建议:因为 Wine 会扮演“\xc3\xa0 la”MS-Windows,这不会是一件好事。)这只是一种感觉,而不是事实,许多其他人确实证明了它不会造成伤害。

\n

享受 !

\n

  • 他们真的不喜欢我十五年前在文件服务器上创建的名为 NUL 的文件夹。 (8认同)
  • @phuclv 仅仅因为 NTFS(和 Windows)支持它们并不意味着应用程序会支持它们。如果应用程序尝试在不使用 UNC 格式(“\\?\”前缀)的情况下打开名为“COM4”的文件,则会收到错误消息。大多数程序不使用 UNC 路径,因为它们并不是真正必要的。由于 OP 使用 Wine,他们使用的程序可能会出现问题。 (2认同)

Roh*_*pta 8

WINE正在模拟 Windows,因此必须与其兼容。 COM * 是 MSDOS 和 WINDOWS 下 com(串行)端口的保留字。

微软帮助

请勿使用以下保留名称作为文件名:

CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8 和 LPT9。还要避免这些名称后紧跟着扩展名;例如,不建议使用 NUL.txt。有关详细信息,请参阅命名空间。

  • 这本身并不能解释为什么它不起作用。这些保留名称是(1970 年代到 1990 年代)MS-DOS 问题,根本不适用于 Linux。而且NTFS文件系统本身也不关心这些名称。但你当然是对的——有人将其作为“保护措施”添加到 Linux NTFS 驱动程序中,这样你就无法创建一个以后 Windows 机器完全无法使用的文件。 (10认同)
  • DOS 就是这样,Windows 也是这样。如果你看一下链接?它的日期为 2022 年,适用于 Windows。**WINE** 正在模拟 Windows,因此它必须像 Windows 一样工作。 (9认同)
  • 酒与当前的问题完全无关。这里没有任何事情是通过一层酒来完成的。 (7认同)
  • @MarcusMüller Wine 实际上在这里非常相关,因为 OP 想使用这些目录_for Wine_。因此,即使 OP 决定禁用此保护措施并创建这些目录,最终结果仍然是 Wine 完全无法使用。听起来确实是一个值得一提的问题。(此外,OP 实际上也尝试“通过 Wine 层”创建这些目录。) (6认同)
  • 他的标签是酒 (4认同)
  • 是的,但是葡萄酒与当前的问题完全无关。wine 绝不是拒绝创建文件系统条目的东西。 (4认同)
  • @user4089 是的,我认为这很清楚。(但这与酒无关) (3认同)