windows 和 osx 文件名长度限制都有 255 个字符,windows 还能额外扩展。但 linux 上的文件系统,无论是常见的 ext4、btrfs 还是 xfs、zfs,一律都是 255 字节,很多原本文件名百来个汉字的文件不重命名下根本搬不过去
1
codehz 2020-01-15 12:37:05 +08:00 via Android
无解,用数据库吧
|
2
gxustudent 2020-01-15 12:48:07 +08:00
脑子一根筋么?文件名换成文件夹名,再多重嵌套是否可以?
|
3
learningman 2020-01-15 12:54:25 +08:00 via Android
sha256 一下,建个表对应
|
4
MeteorCat 2020-01-15 13:00:33 +08:00 via Android
ln -s /xxx/yyy/zzz/........./ /tmp_dir
|
5
jasonyang9 2020-01-15 13:04:24 +08:00
好奇这百来个汉字都是些啥
|
6
MeteorCat 2020-01-15 13:05:06 +08:00 via Android
如果文件名超过 255 字节要修改内核,如果是仅仅文件夹长度 255 字节直接做个软连接当作文件夹入口
|
7
imn1 2020-01-15 13:08:18 +08:00 1
@jasonyang9 #5
估计是日语汉字 |
8
iamwho 2020-01-15 13:16:02 +08:00 6
这就要想一想了,为什么书写的时候,使用毕加索( Pablo Picasso ),而不是巴布罗·迭戈·何塞·弗朗西斯科·狄·保拉·胡安·纳波穆西诺·玛莉亚·狄·洛斯·雷梅迪奥斯·西普里亚诺·狄·拉·圣地西玛·特里尼达·路易斯·毕加索( Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Ruiz Picasso )。
|
9
love 2020-01-15 14:07:19 +08:00
建个对应的文本文件放文件名?
比如 “101 - 截断的文件名...” + 对应的 101.txt |
10
lihongjie0209 2020-01-15 14:13:05 +08:00
hash 一下吧, 定长输出
|
11
lvsemi1 OP 谢谢大家的建议,看来确实无解,捣鼓文件名的映射虽然简单,但也意味着为了解决一个问题引入新问题,不仅要维护还得增加别人的培训成本,还是直接 ntfs 算了
@iamwho 对于普通用户来说,文件名就是最直观的文件标签 毕加索是个家喻户晓的名人,书面环境同时也会或多或少交待这个名字的生平,当然可以简便 但是如果一位平凡的玛丽苏女士希望别人更好的了解她的家世,显然用 “璃莹殇·安洁莉娜·樱雪羽晗灵·血丽魑·魅·安塔利亚·伤梦薰魅·海瑟薇·蔷薇玫瑰泪·羽灵·邪儿·凡多姆海威恩·夏影·琉璃舞·雅·蕾玥瑷雅·曦梦月·玥蓝·岚樱·紫蝶·丽馨·蕾琦洛·凤·颜鸢·希洛·玖兮·雨烟·叶洛莉兰·凝羽冰·玛丽·苏” 这个名字会更好 |
12
crc8 2020-01-15 15:52:25 +08:00 1
@jasonyang9 文件名即内容。
|
13
lvsemi1 OP 又测试了下改内核里文件系统的 limits 重新编译,ls、mv 之类简单的命令似乎能用,但是 cat 之类的直接报找不到文件,不继续折腾了
|
14
ps1aniuge 2020-01-15 17:47:17 +08:00
@lvsemi1
win7,win2008r2 有长文件名问题。win10,win2016 没有。 具体来说,是从 win10 一周年( win10-14393 )增加的新特性。 ------------------------ [win10 新增功能,对比 win7] ------------------------ win7,win2008r2,已经 eol 了。你到底要不要用 win10 ? win10 到底比 win7 增加了什么功能? 整理如下,分享给有需要的人: win10-10240 的好处:(新增功能) 1 从网上自动更新的锁屏壁纸,win7 没有。备注:按 win+L 锁屏。 壁纸存储目录 C:\Users\用户名\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 2 敲命令不? cmd 和 powershell 支持 [用 alt+enter] 全屏,ctrl+c 和 ctrl+v。powershell 命令比 win7 多 1500 多个。 3 win10 支持 http2.0,传输数据更快,上网更快。win7 不行。 4 win10 支持 usb3.0。win7 还要装驱动。win10 只要有网卡驱动,其他驱动自动更新好! 5 貌似 win10 上运行.net 程序比 win7 更顺畅了,首次运行不慢。 6 笔记本外接显示器用户注意:win+p 好使,比 win7 略佳。 win10-14393 红石的好处:(一周年版比 win10 旧版新增功能) 1 红石引入了名叫 Windows Subsystem for Linux(WSL)的功能。 WSL 实现了 Linux 系统调用的子集,允许 Windows 用户使用 Bash 不用修改直接运行原生 Linux 程序。 2 win10 有目录+文件名长度 260 字符限制,红石没有了。 3 红石的 hyper-v 原生支持 docker。win10-10586 不行。详见: https://www.sysgeek.cn/preview-hyper-v-containers-windows-10-build-14352/ 4 TCP 协议支持 TCP Fast Open (TFO), 5 驱动程序强制签名,更安全! |
15
omph 2020-01-15 21:44:09 +08:00
先用 7z 压缩一下试试
|
16
FrankHB 2020-01-15 22:00:48 +08:00
@lvsemi1 对普通人来讲,文件名就是文件名,只是访问文件的入口的一种。
文件名作为路径的组成部分,历史上起到的主要作用是唯一键(算上链接,在文件系统里也不唯一了,只是目录下唯一),而不是索引。键的名字上还可能有各种乱七八糟的约束……根本不适合当一般意义的标签。 文件名的本质其实就是一种元数据,只不过具有历史显著性而不方便随便扔掉——为了兼容构成路径这种 VFS 遗留 API 要求的输入才一概保留的( shell 这样的 CLI 在这个意义上也是 API ),因此很多时候相当鸡肋(特别不能指望兼容性)。而在现代文件系统内部作为键的作用,也已经被 inode 里的特定具体文件系统设计的元数据取代了。 普通用户基本不会有这些概念。作为开发者,你需要引导他们绕过坑,而不是推进坑里。不保险就跑。 至于能多坑的例子么……比如: https://www.mercurial-scm.org/wiki/EncodingStrategy#The_.22makefile_problem.22 我就不多说脏话了(这里还好就是专坑开发者)。 |
17
712e1959 2020-01-15 22:16:15 +08:00 via Android
|
18
loading 2020-01-16 07:50:12 +08:00 via Android
我感觉配合一个映射 txt,然后自己修改一些文件浏览器还原文件名,这个实现起来要简单很多,如果是 web 实现就更容易了。
|
19
lvsemi1 OP … 上面几位在对空气输出?这本来就是 windows/osx 上的文件!
|