用于 CD/DVD 的类似locate/updatedb 的工具(Linux CLI)

用于 CD/DVD 的类似locate/updatedb 的工具(Linux CLI)

我正在寻找一个 Linux 工具来搜索 CD 和 DVD 等离线媒体上的文件。我知道有很多“编目”工具,但那些都是图形化的,我想要一个命令行程序。理想的情况是,它的工作方式与众所周知的locate/updatedb 包一样,唯一的例外是数据库更新必须是交互式的,这样您就可以输入媒体的一些 id 或描述,这些将由类似locate的工具打印出来,例如

$ medialocate foo.png
MEDIA_DVD_01:/pictures/misc/foo.png
MEDIA_DVD_08:/photos/foo.png
MEDIA_DVD_08:/img/bar/foofoo.png

这样的工具存在吗?我还没有找到任何东西,但这可能是因为“locale”/“cd”/“files”/“catalog”等术语太常见,无法产生良好的结果。我自己写这样的工具并不难,但我不想在这里重新发明轮子。

答案1

您可以使用 updatedb 来解析可移动媒体路径,只需在 /etc/updatedb.conf 或等效文件中相应地配置 PRUNEPATHS 和 PRUNEFS 环境变量即可。尽管这只会记住路径,但如果您在同一目录中安装不同的媒体并运行 updatedb,它会覆盖(或附加?)文件。

您可以通过将每张 CD 安装到其自己的目录中来解决这个问题,这不是很难,但是有点麻烦。

答案2

我对此的具体解决方案是使用isoinfowodim 在 ~/dvddb/ 目录中生成文件,并使用 DVD 的标签作为文件名(如果您不使用 RockRidge 扩展,请更改-lR-lJ):

isoinfo -lR -i /dev/scd0 > ~/dvddb/xxx.txt

然后,查找一些文件:

grep -i 'name' ~/dvddb/*

您可能想要创建 shell 别名。

答案3

我使用如下的 shell 脚本:

#!/bin/bash
find $1 -type f -exec xmler.sh {} + > out.xml

xmler 创建的位置:

<file>
    <filename>someFilename.txt</filename>
    <md5sum>xxxxxxxxxxxx</md5sum>
    <date_modified>....</date_modified>
</file>

文件条目被包裹在

<catalogue type="dvd" diskid="someid"></catalogue>

等等,然后将其转换为 XML 文档。然后我可以编写工具来创建 HTML 目录和索引、搜索工具等等。

有点黑客,但对我有用。

相关内容