限制Linux文件名:最大长度、字符限制(linux文件名字符)
Linux系统中文件名可以用任何单字节字符组成,把文件名组成字符串,系统要求文件名长度不能超过255个字符,文件名当中可以包含空格和各种中文、英文字符等,但是也存在不能使用的字符。
根据Linux系统定义,一个文件名最多255个字符。即使你在创建文件时输入的文件名超过255字符,Linux也会自动截断到255字符,而不报错。当然,推荐大家在创建文件时,最好不要超过255个字符,否则很容易混乱,写脚本会很麻烦。
除此之外,Linux文件名还应遵守它的操作系统保留字规则,就是在Linux系统中,有一些文件或者文件夹名称是被系统保留的,不能被用户用来创建文件或者文件夹,也不能包含在文件名里面。
当前,Linux系统保留字主要有以下几个:&、~、.、..,也就是说,当用户在使用Linux的时候,不论是创建文件名还是文件夹名称,都不能带有这四个字符,否则会报错。
下面是一个可以检测文件名是否带有以上4个特殊符号的简单代码,使用正则表达式:
import re
def isLegalFileName(filename): pattern = re.compile(r'[~|&|.|..]') # 匹配这4个特殊符号
if pattern.fullmatch(filename) is None: # 如果能够匹配,返回None return True
else: return False
if __name__ == '__main__': file_list = ['test.txt', '..', 'test', '~test']
for filename in file_list: result = isLegalFileName(filename)
print(f"{filename}: {result}")
总结:Linux系统中文件名的最大长度为255个字符,而且不能包含特殊字符&、~、.、..,可以用正则表达式的方式来检测文件名是否合法。