我想在我的 Kindle 上阅读 unix 联机帮助页。我知道我可以将 man 输出重定向到一个文件并给它一个 .txt 扩展名。但是,有没有将它们转换的便捷方式集体以适当交叉引用的格式?
编辑:为我在这个问题中的行为道歉。我告诉 pat 如果作为答案提交,我会接受评论,然后更好的答案出现了,我没有遵守我的承诺(对不起)。我热情地接受了 Caleb 的回答,该回答生成了联机帮助页的 html 版本;然后一段时间后,当我真正尝试将文件传输到kindle时,我发现kindle不会显示html文件;我不加解释地接受了(对不起)。Kindle 似乎需要 .txt 或 .pdf(或各种真正的电子书格式之一)。我希望我已经解释了自己。
此外,我对 Debian Linux 发行版有多少联机帮助页没有实际了解,因此 Caleb 关于选择“最佳”集合的评论似乎是最好的主意。但我真的不想自己尝试这样做(这是在 StackExchange 网站上提问的先决条件),所以我不喜欢询问如何选择“最佳”,即使这确实是必要的实际上是为了做到这一点。
要将系统上所有手册页的所有部分转储到 html,您可以从空白目录尝试类似的操作:
IFS=\.
find /usr/share/man/man* -type f -exec basename {} .gz \; |
while read page section; do
man -Thtml $section $page > $page.$section.html
done
Run Code Online (Sandbox Code Playgroud)
为了将每个手册页转换为 pdf,我做了man -k . > temp
。我创建了一个临时文件和一个名为的脚本file.sh
:
#! /bin/bash
if [ $# -eq 1 ] ; then
to_pdf=$(which ps2pdf)
if [ -z "$to_pdf" ] ; then
to_pdf=$(which pstopdf)
fi
name="$1"
case "$to_pdf" in
*pstopdf) man -t "$name" | "$to_pdf" -i -o "$fname.pdf" ;;
*ps2pdf) man -t "$name" | "$to_pdf" - "$name.pdf" ;;
*) man -t "$name" > "$fname.ps"
esac
exit $?
fi
echo "Wrong number of parameters"
exit 1
Run Code Online (Sandbox Code Playgroud)
我写了一个python文件pythonfile.py
import os
f=open("temp","r")
for i in f:
c="bash file.sh "+str(i)
os.system(c)`
Run Code Online (Sandbox Code Playgroud)
然后我做了
python pythonfile.py
Run Code Online (Sandbox Code Playgroud)
这将为您的工作目录中的每个手册页单独创建一个 pdf 文件。