跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 长文件名在 Linux 上有没有解?
未分類
14 4 月 2020

长文件名在 Linux 上有没有解?

长文件名在 Linux 上有没有解?

資深大佬 : lvsemi1 61

windows 和 osx 文件名长度限制都有 255 个字符,windows 还能额外扩展。但 linux 上的文件系统,无论是常见的 ext4、btrfs 还是 xfs、zfs,一律都是 255 字节,很多原本文件名百来个汉字的文件不重命名下根本搬不过去

大佬有話說 (19)

  • 資深大佬 : codehz

    无解,用数据库吧

  • 資深大佬 : gxustudent

    脑子一根筋么?文件名换成文件夹名,再多重嵌套是否可以?

  • 資深大佬 : learningman

    sha256 一下,建个表对应

  • 資深大佬 : MeteorCat

    ln -s /xxx/yyy/zzz/………/ /tmp_dir

  • 資深大佬 : jasonyang9

    好奇这百来个汉字都是些啥

  • 資深大佬 : MeteorCat

    如果文件名超过 255 字节要修改内核,如果是仅仅文件夹长度 255 字节直接做个软连接当作文件夹入口

  • 資深大佬 : imn1

    @jasonyang9 #5
    估计是日语汉字

  • 資深大佬 : iamwho

    这就要想一想了,为什么书写的时候,使用毕加索( Pablo Picasso ),而不是巴布罗·迭戈·何塞·弗朗西斯科·狄·保拉·胡安·纳波穆西诺·玛莉亚·狄·洛斯·雷梅迪奥斯·西普里亚诺·狄·拉·圣地西玛·特里尼达·路易斯·毕加索( Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Ruiz Picasso )。

  • 資深大佬 : love

    建个对应的文本文件放文件名?
    比如 “101 – 截断的文件名…” + 对应的 101.txt

  • 資深大佬 : lihongjie0209

    hash 一下吧, 定长输出

  • 主 資深大佬 : lvsemi1

    谢谢大家的建议,看来确实无解,捣鼓文件名的映射虽然简单,但也意味着为了解决一个问题引入新问题,不仅要维护还得增加别人的培训成本,还是直接 ntfs 算了

    @iamwho
    对于普通用户来说,文件名就是最直观的文件标签

    毕加索是个家喻户晓的名人,书面环境同时也会或多或少交待这个名字的生平,当然可以简便

    但是如果一位平凡的玛丽苏女士希望别人更好的了解她的家世,显然用 “璃莹殇·安洁莉娜·樱雪羽晗灵·血丽魑·魅·安塔利亚·伤梦薰魅·海瑟薇·蔷薇玫瑰泪·羽灵·邪儿·凡多姆海威恩·夏影·琉璃舞·雅·蕾玥瑷雅·曦梦月·玥蓝·岚樱·紫蝶·丽馨·蕾琦洛·凤·颜鸢·希洛·玖兮·雨烟·叶洛莉兰·凝羽冰·玛丽·苏” 这个名字会更好

  • 資深大佬 : crc8

    @jasonyang9 文件名即内容。

  • 主 資深大佬 : lvsemi1

    又测试了下改内核里文件系统的 limits 重新编译,ls、mv 之类简单的命令似乎能用,但是 cat 之类的直接报找不到文件,不继续折腾了

  • 資深大佬 : ps1aniuge

    @lvsemi1
    win7,win2008r2 有长文件名问题。win10,win2016 没有。
    具体来说,是从 win10 一周年( win10-14393 )增加的新特性。

    ———————— [win10 新增功能,对比 win7] ————————
    win7,win2008r2,已经 eol 了。你到底要不要用 win10 ?
    win10 到底比 win7 增加了什么功能?
    整理如下,分享给有需要的人:

    win10-10240 的好处:(新增功能)
    1 从网上自动更新的锁屏壁纸,win7 没有。备注:按 win+L 锁屏。
    壁纸存储目录
    C:Users用户名AppDataLocalPackagesMicrosoft.Windows.ContentDeliveryManager_cw5n1h2txyewyLocalStateAssets
    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 驱动程序强制签名,更安全!

  • 資深大佬 : omph

    先用 7z 压缩一下试试

  • 資深大佬 : FrankHB

    @lvsemi1 对普通人来讲,文件名就是文件名,只是访问文件的入口的一种。
    文件名作为路径的组成部分,历史上起到的主要作用是唯一键(算上链接,在文件系统里也不唯一了,只是目录下唯一),而不是索引。键的名字上还可能有各种乱七八糟的约束……根本不适合当一般意义的标签。
    文件名的本质其实就是一种元数据,只不过具有历史显著性而不方便随便扔掉——为了兼容构成路径这种 VFS 遗留 API 要求的输入才一概保留的( shell 这样的 CLI 在这个意义上也是 API ),因此很多时候相当鸡肋(特别不能指望兼容性)。而在现代文件系统内部作为键的作用,也已经被 inode 里的特定具体文件系统设计的元数据取代了。
    普通用户基本不会有这些概念。作为开发者,你需要引导他们绕过坑,而不是推进坑里。不保险就跑。

    至于能多坑的例子么……比如:
    https://www.mercurial-scm.org/wiki/EncodingStrategy#The_.22makefile_problem.22
    我就不多说脏话了(这里还好就是专坑开发者)。

  • 資深大佬 : 712e1959

    insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html

    你确定长文件名导致的长路径名在 NTFS 上就有解了?

  • 資深大佬 : loading

    我感觉配合一个映射 txt,然后自己修改一些文件浏览器还原文件名,这个实现起来要简单很多,如果是 web 实现就更容易了。

  • 主 資深大佬 : lvsemi1

    … 上面几位在对空气输出?这本来就是 windows/osx 上的文件!

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具