Linux下为Calibre书库打中文目录名与文件名补丁
本文由来
临近下班突然看到知乎上有篇文章是给Calibre打中文目录与文件名补丁的,想起我之前为啥放弃Calibre的——存进书库里书的名称都变成了拼音!手动找起来或者搜索工具找起来太麻烦了(有时想不起用Calibre,直接用搜索软件+PDF阅读器就看了),用过Calibre的同学应该知道——添加到书库里的书相当于从外边复制过来的,每本书都存两份很占空间呀!万一用不习惯还能卸载,不用每本书都改回一次名!
既然有这么做成功的,Windows行,Mac行,那Linux也一定行!
本文环境:Debian 10 + Calibre 3.39.1,据说5.2以后版本变化较大,方法可能不适应5.2版本以上
下面两张图是添加书籍以及在文件管理器中的样子:


一步跳进坑
根据那篇文章所说的,需要下载源码改完编译后替换Calibre在用的文件,那个待修改的源码文件是 src/calibre/db/backend.py,需要编译成 backend.pyo 再去装到pylib.zip中,我改完了编译完了想去替换时犯了难:在Debian下这个文件放哪了??那篇文章里明明有 pylib.zip 压缩包,我 find / -name "pylib.zip" 也没有,想着要不二进制安装下试试?
没错,我又折腾了一阵二进制安装,无果。
回过头想想,问题出在哪呢?
渐入佳境
回到家,用手机又查了下,发现有文章用Mac改的源码,然后替换的位置和Windows下也不一样。灵光一闪,这 pylib.zip 在Linux下应该是没有的,我搜一下不就好了?搜啥呢?
打开命令行,问了下命令 whereis calibre

可能有的地方可能在 /usr/lib/calibre 和 /usr/share/calibre 目录中,进入 /usr/lib/calibre 目录后,我突然发现:这目录结构不就是源码么!只是没了src这层,我一下子就找到了源码 calibre/db/backend.py,另外发现有个.pyc结尾的文件,查了下Bing发现这是和.pyo类似的字节码文件

备份了 backend.py 与 backend.pyc 后,开始动手改
sudo vim /usr/lib/calibre/db/backend.py
搜索 construct_path_name,注释1172-1173行字样的两行


搜索 construct_file_name ,注释了1200-1201行字样的两行


保存退出,开始编译.pyc,之前看这文件头上有python2.7字样,编译也是用python2.7编译的
sudo python2.7 -O -m py_compile /usr/lib/calibre/db/backend.py
小试牛刀

如图,中文目录和中文文件名都正常了,又能与 Calibre 愉快地玩耍了~
Calibre作者将这些中文等unicode转成拼音这种字母型是为了方便迁移到无unicode支持的环境中而不至于乱码,对于我们而言是不必要的。
本文参考:
- https://zhuanlan.zhihu.com/p/245553023
- http://blog.sina.com.cn/s/blog_7a1f539c0102xitp.html
- https://www.cnblogs.com/wqbin/p/11837221.html
本文首发自博客园 Hellxz博客,同步于CSDN 拾级而上
Linux下为Calibre书库打中文目录名与文件名补丁的更多相关文章
- 解决在Linux下安装Oracle时的中文乱码问题
本帖最后由 TsengYia 于 2012-2-22 17:06 编辑 解决在Linux下安装Oracle时的中文乱码问题 操作系统:Red Hat Enterprise Linux 6.1数据库:O ...
- 部署Linux下的man慢查询中文帮助手册环境
对于Linux运维工作者来说,man查询手册绝对是一个好东西.当我们对一些命令或参数有些许模糊时,可以通过man查询手册来寻求帮助.其实Linux之所以强大, 就在于其强大的命令行, 面对如此繁杂的命 ...
- [转载] linux下打开windows txt文件中文乱码问题
原文链接 在linux操作系统下,我们有时打开在windows下的txt文件,发现在windows下能正常显示的txt文件出现了中文乱码. 出现这种情况的原因为两种操作系统的中文压缩方式不同,在win ...
- Linux下用freetds连接mssql中文乱码的问题【参考1】
由于工作原因我们需要通过php访问我们以前的Sql Server 2005数据,所以就有了这篇文章的诞生.废话就少说了,做程序设计的最不喜欢兜圈子了.用简介步骤说明问题,往下看.系统: Linux ...
- linux下打开windows txt文件中文乱码问题 (转载)
转自:http://blog.csdn.net/imyang2007/article/details/7448177 在linux操作系统下,我们有时打开在windows下的txt文件,发现在wind ...
- Linux下安装Calibre
目录 一.介绍 二.安装 三.测试 四.报错处理 一.介绍 Calibre是基于python的电子书制作软件,可导出PDF.EPUB.MOBI.Word格式电子书. 二.安装 yum -y insta ...
- Linux下用freetds连接mssql中文乱码的问题【参考2】
php5.3的情况下,用pdo的dblib驱动无法连接mssql的,根据官方的描述,5.2已经修改这个bug,5.3没有. 用php自带的mssql函数可以的.编译freetds,php_mssql, ...
- Linux 下 zip 文件解压中文乱码
windows下的中文文件名拷贝到ubuntu下面以后,文件名直接变成乱码,原因为windows下的文件名以GBK编码,而Ubuntu下的文件 名为utf-8编码 1. ubuntu下有一个工具可以用 ...
- linux下javadoc生成文件出现中文乱码
javadoc命令的正确使用姿势 javadoc -d apidoc -windowtitle Testing -doctitle 'The API of javadoc' -header 'My c ...
随机推荐
- 「UOJ 514」通用测评号(生成函数)
首先,题目中的过程可以看作:每次选择任意一个燃料仓,给它装填 \(1\) 单位的燃料,如果此时恰好 "填满" 了它,就给答案 \(+1\). 考虑 \(n\) 号燃料仓填满的概率, ...
- 2019 GDUT Rating Contest I : Problem E. Convention
题面: E. Convention Input file: standard input Output file: standard output Time limit: 1 second Memory ...
- 数据库期末作业之银行ATM存取款机系统
--一.建库.建表.建约束 --1.使用SQL创建表 --客户信息表userinfo --字段名称 说明 备注 --customerID 顾客编号 自动编号(标识列),从1开始,主键 --用序列seq ...
- 【Azure Developer】Github Action部署资源(ARM模板)到Azure中国区时,遇见登录问题的解决办法
问题描述 在参考文档"使用 GitHub Actions 部署 ARM 模板"一文中,由于是在中国区Azure上操作,所以生产的部署凭证为中国区凭证.当创建工作流时,在登录到Azu ...
- go中semaphore(信号量)源码解读
运行时信号量机制 semaphore 前言 作用是什么 几个主要的方法 如何实现 sudog 缓存 acquireSudog releaseSudog semaphore poll_runtime_S ...
- 多任务学习(MTL)在转化率预估上的应用
今天主要和大家聊聊多任务学习在转化率预估上的应用. 多任务学习(Multi-task learning,MTL)是机器学习中的一个重要领域,其目标是利用多个学习任务中所包含的有用信息来帮助每个任务学习 ...
- Kubernetes工作流程--<1>
Kubernetes工作流程 客户端创建pod 流程: 用户管理员创建 Pod 的请求默认是通过kubectl 客户端管理命令 api server 组件进行交互的,默认会将请求发送给 API Ser ...
- 高可用负载均衡 haproxy+keepalived
服务器 20.0.0.206 10.0.0.206 bs-hk-hk01 高可用负载均衡节点 2c2g 20.0.0.207 10.0.0.207 bs-hk-hk02 高可用负载均衡节点 ...
- 删除文件--rm
rm file 删除文件 rm -r dir 删除指定文件夹及文件夹下的所有内容 rm -rf dir 强制删除指定文件夹及文件夹下的所有内容
- SqlServer游标的创建与使用
前言 大家都对SqlServer视图.存储过程.触发器的创建与使用有一定的了解了,我们来看下什么是游标,怎么使用,什么时候用. SqlServer视图的创建与使用 SqlServer存储过程的创建与使 ...