首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu/Windows11 11双引导机器上在文件名中创建具有管道字符(“AC.26”)的文件

在Ubuntu/Windows11 11双引导机器上在文件名中创建具有管道字符(“AC.26”)的文件
EN

Unix & Linux用户
提问于 2023-02-09 21:25:57
回答 1查看 72关注 0票数 0

我正在运行Ubuntu22.04,并希望创建一个文件,文件名中包含管道字符(“AC.26”)。(运行一些遗留代码是必要的。)具体来说,如何识别和纠正在Linux/Windows11 11双引导系统的某些驱动器上阻止我这样做的缺陷?

我认为双引导是一个问题,因为我可以在我的机器上的某些目录中成功地创建这样的文件,但不能创建Windows可以读取的磁盘驱动器上的文件(见下文)。其他人最初安装了操作系统,所以我不知道他们做出了哪些选择会影响到这个问题。

这是我试过的。下面的尝试奏效了,因此我们知道Linux并没有提出根本的反对意见:

代码语言:javascript
复制
xname@blackbox:~$ cd ~
xname@blackbox:~$ touch "|"
xname@blackbox:~$ ls -l "|"
-rw-rw-r-- 1 xname xname 0 Feb  9 10:17 '|'

同样,如果我位于/media目录或/media/xname目录中,则可以成功地触摸该文件。

代码语言:javascript
复制
xname@blackbox:/media/xname$ cd /media
xname@blackbox:/media$ sudo touch "|"
xname@blackbox:/media$ cd /media/xname
xname@blackbox:/media/xname$ sudo touch "|"
xname@blackbox:/media/xname$ ls -l
total 12
-rw-rw-r-- 1 xname xname    0 Feb  9 11:35 '|'
drwxrwxrwx 1 xname xname 8192 Feb  8 17:25  cdisk
drwxrwxrwx 1 xname xname 4096 Feb  9 11:30  ddisk

您可以看到上面对ddisk的权限。当我最初得到机器时,它的父目录有一个ACL,但是我使用setfacl -b ddisk删除了它,然后重新启动。

触摸尝试在ddisk (和cdisk)中失败:

代码语言:javascript
复制
xname@blackbox:/media/xname$ cd /media/xname/ddisk
xname@blackbox:/media/xname/ddisk$ touch "this_works_fine"
xname@blackbox:/media/xname/ddisk$ touch "|"
touch: setting times of '|': No such file or directory
xname@blackbox:/media/xname/ddisk$ sudo touch "|"
touch: setting times of '|': No such file or directory

也许findmnt命令的部分输出会有帮助:

代码语言:javascript
复制
TARGET                                   SOURCE           FSTYPE  OPTIONS
/                                        /dev/nvme0n1p5   ext4    rw,relatime,er
├─/media/xname/ddisk                     /dev/nvme1n1p2   fuseblk rw,nosuid,node
└─/media/xname/cdisk                     /dev/nvme0n1p3   fuseblk rw,nosuid,node

这是mount | grep media的输出

代码语言:javascript
复制
/dev/nvme0n1p3 on /media/xname/cdisk type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
/dev/nvme1n1p2 on /media/xname/ddisk type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

有关这台机器的另一个令人费解的事情可能是相关的:当我登录时,有人要求我为一个不是xname的帐户提供密码。我不知道xname是从哪里来的。

谢谢你的帮助。

EN

回答 1

Unix & Linux用户

发布于 2023-02-10 01:04:42

您使用哪个DOS/Windows特定的文件系统并不重要;它们都禁止下列字符(每个这个MS页面) .

对名称使用当前代码页中的任何字符,包括Unicode字符和扩展字符集(128-255)中的字符,except用于以下内容:

下列保留字符:

  • <<
  • (大于)
  • *(冒号)
  • “(双引号)
  • /(正斜杠)
  • (反斜杠)
  • (竖直管或竖直管)
  • ?(问号)
  • *(星号)

我怀疑是否存在一个抽象层来提取这些信息,而不管文件系统如何,但我显然不是MS员工,也不确定。我猜想所有的Windows文件系统都实现了这个限制,而这些linux实现似乎只符合这些限制。我可以想象,如果您成功地在Linux上创建了*hey|there文件,然后引导窗口并运行一个fsck,那么它会非常不爽。;)

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/734969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档