zoukankan      html  css  js  c++  java
  • 探究Linux支持最长文件名是255字节还是255字符

    最近在使用Python 的wget包下载文件时遭遇了OSError: filename too long的异常,经检查下载的文件名确实很长,于是去查询Linux x86_64架构下最长文件名支持是多少。

    中提到Linux单目录名支持最大255个字符,全路径支持4096,但出问题的文件名称才九十多个字符。于是写了一个Python脚本验证一下:

    import os
    
    if __name__ == '__main__':
        addname = ''
        basename = ''
        while True:
            basename += addname
            try:
                with open(basename, 'w') as f:
                    os.remove(basename)
            except Exception as e:
                print('length %d failed' % len(basename))
                break

    输出为86,并不是256。而考虑到大多数汉字的utf-8编码一般占3字节,显然Linux对目录名长度255的限制是字节数而不是字符数。出问题的文件名因为含有大量中日文,其用bytes(str, encode='utf-8')转换为字节格式后长度已经超过255,尝试将文件名删减到255字节以下后成功保存。

    结论:x86_64 Linux下文件名最长为255个字节,具体是多少个字符要看字符的utf-8编码,一般英文会比较长,中文和特殊符号等等比较短。

  • 相关阅读:
    小儿吃鸡蛋食积案
    女子经前胀痛脸上红斑案
    小儿外感咳嗽咽痛案
    顽固偏头痛案
    交通心肾治失眠
    小儿扁桃体高热兼咳嗽案
    过敏疾患与太少两感相合
    经前乳胀案
    女子黃带案
    小儿外感后频繁眨眼案
  • 原文地址:https://www.cnblogs.com/qjfoidnh/p/12248643.html
Copyright © 2011-2022 走看看