我继承了一个遗留的开发系统,该系统的文档很少,并且不知道源代码是否仍然可用。
现在我可以找到一些源代码并实际构建系统的一部分。
我想知道是否可以找到其余的源代码,以及是否有比locate *.c
手动检查文件更好的方法(这就是我找到部分代码的方法)。
有 3 台机器,只有一台我找到了源代码,似乎是开发机器。它还有 61 个.deb
档案,似乎是项目的打包版本,但查看档案后.deb
发现源代码不在档案中,或者至少不在我查看的地方。
有没有一种好方法来“扫描”整个驱动器以获取源代码?
答案1
这不会回答您更一般的问题,但在您的具体情况下,由于系统上有软件包,因此值得查找相应的源代码:
find / -name \*.orig.tar\* -o -name \*.dsc
这将查找以 Debian 包构建工具期望的方式命名的源档案,以及源包控制文件。如果您找到这些文件,请在它们旁边查找.debian.tar*
或.diff.gz
归档。所有这些文件组合起来将为您提供源代码和构建规则,以及所有包元数据。
您还可以查找解压的控制文件:
find / -name control
它们通常位于debian
包源的子目录中,其中应包含从源重建包所需的所有内容。
答案2
我通常使用脚本组合来处理源文件。正如上面的答案一样,这并不能完全解决您的情况,但搜索符号可以帮助定位源文件。
添加以下内容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