首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对bash中文件名长度的限制

问对bash中文件名长度的限制
EN

Stack Overflow用户
提问于 2011-07-04 12:24:08
回答 8查看 111.4K关注 0票数 81

以下问题仅适用于bash和linux:

  1. 文件的绝对路径名中的字符数是否有限制?
  2. 文件名的字符数是否有限制(没有扩展名)?

如果是的话,这些限制可能是什么?如果它们是特定于系统的,我如何访问它们?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-07-04 12:33:34

它在很大程度上依赖于文件系统。对于ext FS (目前Linux上使用的最多):

  • 最大文件名长度:255个字节
  • 最大路径长度:无

扩展不是FS所知道的,它包含255个字节,包括扩展名(您可以拥有没有任何扩展名的文件名)。

这里是针对每个FS的这些限制的更详尽的列表。

您的文件系统的扩展名也可以更改您的最大长度。例如,eCryptFS使用部分较低的文件名来保留元数据,并将文件名限制为143个字符。参见Ubuntu eCryptFS发射台条目。

票数 77
EN

Stack Overflow用户

发布于 2011-07-04 12:45:06

在临时目录中,运行:

代码语言:javascript
复制
num=1
while [ true ]
do 
   if ! touch $(printf "%${num}s"  | tr ' ' 'a')
   then
       echo $num
       break
   fi
   ((num++))
done

我得到了:

代码语言:javascript
复制
touch: cannot touch `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa': File name too long
256

也就是说我的极限是255。

票数 41
EN

Stack Overflow用户

发布于 2011-07-05 12:36:14

在Mac 10.6.7上:

代码语言:javascript
复制
man getconf
getconf NAME_MAX /   # 255 bytes
getconf PATH_MAX /   # 1024 bytes

# check file path length with wc before using touch, mkdir, etc.
echo '/very/lllooooonnnnnggggg/file/path.txt' | wc -c
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6571435

复制
相关文章

相似问题

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