以下问题仅适用于bash和linux:
如果是的话,这些限制可能是什么?如果它们是特定于系统的,我如何访问它们?
发布于 2011-07-04 12:33:34
它在很大程度上依赖于文件系统。对于ext FS (目前Linux上使用的最多):
扩展不是FS所知道的,它包含255个字节,包括扩展名(您可以拥有没有任何扩展名的文件名)。
这里是针对每个FS的这些限制的更详尽的列表。
您的文件系统的扩展名也可以更改您的最大长度。例如,eCryptFS使用部分较低的文件名来保留元数据,并将文件名限制为143个字符。参见Ubuntu eCryptFS发射台条目。
发布于 2011-07-04 12:45:06
在临时目录中,运行:
num=1
while [ true ]
do
if ! touch $(printf "%${num}s" | tr ' ' 'a')
then
echo $num
break
fi
((num++))
done我得到了:
touch: cannot touch `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa': File name too long
256也就是说我的极限是255。
发布于 2011-07-05 12:36:14
在Mac 10.6.7上:
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 -chttps://stackoverflow.com/questions/6571435
复制相似问题