我已经写了一个脚本,从我的相机检索图片和电影,并根据他们的date重命名,然后将它们复制到我的硬盘上,自动pipe理冲突(相同的名称?相同的大小?相同的MD5?)
工作得很好。
但这是一个脚本。
有时我需要检查一张图片是否已经隐藏在某个卷的某个位置,所以我只想应用“冲突pipe理器”。 我想,如果我正确地遵循了unix的小型单任务工具的精神,我可以做到这一点。
什么是最好的资源,最佳实践和你在这个问题上的经验?
谢谢。
编辑:虽然我很喜欢阅读unix的书籍,对这个主题有深刻的理解,但我首先是在寻找大原则。 另外我倾向于限制自己在线资源。
我发现大多数代码并不是可重用的,而是演变为可重用的。 拿你现有的代码,将“冲突管理器”部分分解成它自己的函数或程序,然后调用该程序,而不是将其作为原始应用程序的一部分。 之后,您将能够重用您需要重用的部分代码。 有时候,为了重复使用而设计软件是不可能的,因为你根本不知道你想要重用哪个部分。
至于资源方面,似乎商店货架上已经装满了Linux桌面用户和系统管理员的书籍,但很难找到好的Linux 编程书籍。 一些好的:
最后,Eric Raymond已经在线提供了免费的Unix编程艺术 。
我会看看这本叫做“ Unix编程艺术”的书。
看看这本书:
Unix编程艺术Eric S. Raymond
http://www.amazon.com/UNIX-Programming-Addison-Wesley-Professional-Computing/dp/0131429019
这是他的网站: http : //www.catb.org/~esr/writings/taoup/
就个人而言,每当我看到我打算写的脚本将比十几行更长时,我使用python而不是shell脚本。 python脚本的一个巧妙的诀窍是,在创建“unix spirit”命令行工具和库的风格中进行编程非常容易。 例如,为你的“冲突管理器”,创建一个文件(Python模块),并把功能放在函数和/或类,然后在最后,你可以把一个Python的“主”功能(通常if __name__=='__main__':
dance)解析命令行选项的地方(使用内置的OptionParser模块,这非常好!),并使用函数/类中的功能。
这样,您可以将该实用程序作为独立的命令行程序使用,也可以将该模块导入到另一个Python脚本中,并通过函数/类使用定义的功能,而不是解析输入。
从维基百科开始(数据流编程)
coreighan和Plauger的书“ 软件工具 (亚马逊)”是这方面的经典之作。 我认为应该要求阅读任何认真的软件开发学生。
– UNIX编程的艺术 – 是相当不错的一本书,就像存在的“unix方式”一样。 OTOH如果方式是“尽你所能完成的工作,尽可能少的工作”,你可能已经在那里。 🙂
我认为一些好的GNU代码的关键是:
我也会推荐这本书。 相当老,但我认为很清楚解释unix的原则。