一个把 ChatGPT 难住的问题,修改文件的自然排序,你会怎么做?

29 天前
 Hopetree

这周有同事在部署一个系统的时候出了生产事故,原因是别人系统的 jar 包有很多,原本是需要 jar 包在自然顺序按照 a-z 排序的,不然就会出问题(就很离谱),暂且不谈这个的合理性吧,我们只讨论如何将一些自然排序是乱序的文件改成自然排序是 a-z

于是我给 ChatGPT 提问了,我告诉他我有三个文件 c.jar b.jar a.jar ,他们的自然排序是 a.jar c.jar b.jar ,怎么再不修改文件内容和文件名等信息的前提下改变他们的自然排序,结果 ChatGPT 给我一段扯,搞了半天也改不了,一直在给我改文件名,或者使用链接,反正没有给有效办法。

各位可以试一下:首先在任意目录执行 touch c.jar b.jar a.jar 创建 3 个文件,然后执行 ls -fi 就是查看自然排序,只要不是 a-z 就行,此时你需要想办法让 ls -fi 得到的自然排序是 a-z 排序

1074 次点击
所在节点    问与答
24 条回复
Hopetree
29 天前
@msg7086 感谢指征,的确是不排序,我是看有些文章里面说的是自然排序,但是我表达的意思是对的,我强调的就是不排序
Hopetree
29 天前
@CEBBCAT 的确是很离谱,说白了是别人系统的问题,但是别人说他们手动部署没问题啊,我们自动部署改变了这个排序,所以导致依赖冲突,然后出问题,本质虽然是研发层的问题,但是的确是运维层把问题引爆的,所以运维背锅,其实方案就是使用 zip 按照 a-z 的顺序循环将文件打包进去,然后解压开就是 a-z 的排序了,这也是他们之前的方法。我们由于需要把文件上传到制品库一次,然后下载到服务器,所以文件的顺序就变了,就出问题了
Hopetree
29 天前
@whileFalse 这个方案然后是可行的,现在是使用的 zip 按 a-z 打包进去,然后解压开就是 a-z 排序,我理解原理应该跟 mv 一样吧
Hopetree
29 天前
@IDAEngine 感谢大佬码字解说,我不是 Java 开发,系统也不是我负责的,我们是运维,负责部署,但是的确是不知道 tomcat 的加载机制,之前也没遇到过类似问题,直到这个系统出现这个问题,发现是由于 jar 包的顺序有要求导致的,这个的确应该研发从开发层面去解决,但是无奈,别人不愿意改变,所以运维层面只能去改变

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1045826

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX