昨天使用 QB 下载了 《小鬼当家系列》合集,结果从 qb 转移到 tr 后,进度归0了...
重新把种子传到 qb 以后进度也归零了,反复校验均未能通过。
重新下载种子后,发现同名文件夹多了一套“完全一样”的文件名。
尝试通过复制文件名的方式 cp 过去,提示是同一个文件...
wtf???
最后,通过一番技巧,终于找到了罪魁祸首,文件名中包含不可见字符。
以下是可操作的实施方案:
# 将文件名列出后写入到某个文件
ls -l > files.txt
# vim 使用二进制方式 打开这个文件
vim -b files.txt
# vim 中使用十六进制显示特殊符号
:%!xxd
通过如上一番操作,大概可以看到,两个文件是不完全一样的,其中一个多了一个零宽字符 <200e>
现在,我们已经知道这个文件名中多了个空白符号,接下来就是如何将原来已经下载完成的文件,改名成种子中对应的文件名了。
注意,以下操作请执行确认文件名是从哪个改名到哪个,不要照抄,不过一般应该是从没有特殊符号的改成有特殊符号的。
而看到的文件名中包含的特殊符号 <200e>
替换为 \u200e
即可.
mv "小鬼当家 Home Alone (1990).mkv" "$(echo -e "小鬼当家 Home Alone\u200e (1990).mkv")"
其他文件,以此类推,改名后重新校验,通过。
至于为什么会出现这种问题,暂无可知。