Answers:
这不会回答您更笼统的问题,但是在您的特定情况下,由于系统上有软件包,因此值得寻找相应的源代码:
find / -name \*.orig.tar\* -o -name \*.dsc
这将查找以Debian软件包构建工具期望的方式命名的源档案,以及源软件包控制文件。如果找到这些文件,请在它们旁边查找.debian.tar*
或.diff.gz
归档。所有这些文件组合在一起将为您提供源代码和构建规则,以及所有软件包元数据。
您还可以查找解压缩的控制文件:
find / -name control
这些通常位于debian
程序包源的子目录中,该子目录应包含从源程序重建程序包所需的所有内容。
locate
速度会更快,但是我过去对在已清理的恢复系统上运行它感到失望– locate
数据库仍然是源代码消失的新数据库。(如果有备份可用,这仍然可能是有用的信息...)
.deb
档案,这些档案似乎是项目的打包版本”(原文如此)。
find
尝试读取在建立文件列表和读取文件/proc
之间消失find
的文件。您可以/proc
完全跳过。
我通常使用脚本的组合来处理源文件。就像上面的答案不能完全解决您的情况一样,但是搜索符号可以帮助您找到源文件。
将以下内容添加到bashrc
:
function list-code-files() {
find -type f \( \
-name '*.cpp' -o \
-name '*.java' -o \
-name '*.php' -o \
-name '*.[chS]' -o \
-name 'Makefile' -o \
-name '*.mk' \
\) -print0
}
function csym() {
list-code-files | xargs -0 grep -ne "$1"
}
然后,我可以使用列出源文件list-code-files | xargs -0 echo
,或使用来搜索符号csym some-symbol-regexeg
find / -wholename '*/debian/rules'
。或(如果已安装mlocate,则更快)locate -r /debian/rules$