Answers:
据我所知,命名带有单个或多个点的文件夹和文件没有问题。
Ubuntu通常不使用点号和三个字符(例如.txt)来标识文件类型。因此,这在Ubuntu上下文中没有特殊意义。与Windows共享文件时,这很有用。Ubuntu 在文件的前几个字节中使用幻数来标识文件类型。但是,鹦鹉螺。如果可以使用点和三个字符扩展名来标识文件类型,则忽略幻数。可以更改此设置。请参阅 强制Nautilus忽略扩展
在Ubuntu中,以点开头的文件或文件夹名称(例如.experiment_L0.5
)会使文件或文件夹隐藏。您可以通过在Nautilus中按Ctrl+ 切换隐藏文件的显示H。在Windows中,文件名以开头。没有隐藏。因此,如果您将一个名为.experiment_L0.5
Windows 的隐藏文件传输到Windows系统中,则该文件将清晰可见。
在Ubuntu中,文件名可以以点号结尾,因为它的末尾没有特殊含义。但是,在Windows中,点名分隔文件名和扩展名,并且文件名以点号结尾但不允许扩展名。当我尝试在Windows中创建这样的文件时,我得到的文件仅包含名称,无点,无扩展名。
参考:Wiki关于文件名
希望这可以帮助。
fname.
Windows也不允许尾随点(例如)。
test.
Windows中命名的文件。我将更新我的答案。
<>:"/\|?*
(source)
和点.
(source)
grep
)。前导点使文件在Linux中按惯例隐藏。在Windows中,文件扩展名中使用点,该扩展名用于文件类型检测。CON
,PRN
,AUX
,CLOCK$
,NUL
COM1
,COM2
,COM3
,COM4
,COM5
,COM6
,COM7
,COM8
,COM9
LPT1
,LPT2
,LPT3
,LPT4
,LPT5
,LPT6
,LPT7
,LPT8
,和LPT9
。(来源)/
and null(空字节\0
)。Ubuntu使用ext4
文件系统。文件系统跟踪文件在基础存储(磁盘或SSD或其他存储设备)上的存储位置,所有者/组/其他形式的权限可以读取/写入/执行,时间戳,名称。
文件系统构成可用存储。第一个块称为“超级块”。该块用于挂载文件系统。据我所知,每个现代文件系统都将其空间分成若干块。我认为(尽管我不太确定)大多数文件系统也具有固定的块大小,尽管可以在创建文件系统时配置块大小。ext4(以及ext2和ext3)对文件和目录使用所谓的“ inodes”。这些inode包含指向其他块的指针(也可能是inode或“数据块”)。文件的“第一个”索引节点包含我上面提到的所有信息。
另一信息是文件的“类型”。“类型”可以是:
实际上,您也可以使用编辑器打开目录:
vim /home
由于目录不包含完整路径,而仅包含内容的名称,我看不到文件不能包含的原因/
。我想这可能很方便。(有人知道为什么/
不允许吗?)
但是,其他文件系统则有所不同。FAT16和FAT32使用了所谓的“文件分配表”。这意味着存在一个表,该表包含文件中存储的所有文件,它们在此开始“集群”,并在单个集群结束于单个集群。
我想告诉您的重要一点是,不允许使用的字符也可能取决于文件系统。
.txt
或.html
(均为文本文件)。.txt
和.html
文件确实有不同的“魔力值” -尝试重命名一个HTML文件test.txt
并运行file test.txt
。它与原始问题没有太大关系,但仍然:)
file
:file
不仅使用魔术值来确定文件的类型。每个有效的HTML文件都是一个文本文件(就其确实包含可读字符而言),但并非每个有效的文本文件都是一个有效的HTML文件(就其针对W3C验证程序进行验证而言)。因此,很多文件类型(html,xml,csv,js,php,c,h,cpp等)实际上都是文本文件。只有二进制文件的魔术字节位于明确定义的位置。我上面命名的所有文件在内容之前都可以具有任意空格。
为了完整起见,仅包含一个.
或两个点的名称..
是特殊的:
.
指当前目录..
指上级目录这些条目是自动添加的,并且始终存在,因此您不能拥有名为.
或的文件..
。
在Unix,Linux文件系统中,文件命名非常灵活。您唯一不能拥有的文件名是空字符或/
名称中包含a 的文件名。但是从名称可移植性的角度来看,避免使用其他系统中禁止/保留的字符肯定是一个好习惯;例如," * : < > ? \ / |
如果要在Windows系统中访问文件,则不应在文件名中使用任何字符(受NTFS限制)。
而有关使用.
文件名(周期),我认为这应该是罚款,这似乎并没有成为一个“保留”字符在任何系统(除适用于OpenVMS,MS-DOS和Windows的地方使用允许使用文件/目录名称,但最后一次出现将被解释为VMS,MS-DOS和Windows中的扩展名分隔符),如以下Wikipedia链接所述:
在其他系统中,通常将其视为文件名的一部分,并且可以允许多个句点。在Unix中,前置时间表示文件或文件夹通常处于隐藏状态。