用Python给find(1)写了个终端界面(TUI)。正确的用法是点点点,然后就会拼装出对应的命令,接下来敲回车或者点击运行,实际的任务就会交由find完成。
上截图:

在几个月前的某日,因为再也忍受不了find的难用,所以心血来潮,开始给它写一个TUI。之所以写的是终端界面而不是一般的GUI,是因为一般是在终端中运行find,如果是GUI的话,在VPS上就用不了了。
其实如果追求效率和自由度的话,直接在命令行里面敲好了,无须加多一层界面。
不过find跟其它coreutils不同,它接受的选项是如此地复杂,以至于实际上就是一门用于查询的小DSL。即使之前用了很多次,每次用的时候我还是需要man find一下。所以这个小玩意就是把man find里面的东西,搬到了终端界面上。当然除此之外,我还给它实现了一定的补全功能和添加了常用选项的例子(相当于cheet)。还有快捷键的功能……嗯,就是尽量向命令行的效率靠齐。
用法?就是在终端中敲findtui,接着根据想要查询的方向,点击对应的菜单(比如想查某段时间内修改过的文件,就点击Time菜单),然后选择某个子选项,输入想要的值。就像填表一样。
安装方式也跟它的用法一样简洁直白,就是一行sudo pip install findtui
项目代码在: https://github.com/spacewander/find
因为本人水平有限,界面写得甚挫。如果你对改善这个小玩意感兴趣,或者发现了活蹦乱跳的BUG,欢迎提issue和pr。当然也欢迎阅读它的实现代码,code review什么的最棒了。
|  |      1Shazoo      2015-07-13 16:32:24 +08:00 显然先star下~ | 
|  |      2Clarencep      2015-07-15 10:50:42 +08:00 试用了下,然后才发现——原来find还有这么多参数我还不知道,一直只用`find . -type f`... 只是偶选了各种参数后,然后按回车,再然后就没然后了... 什么输出都没有,什么错误提示都没有程序就退出了... | 
|  |      3townboy      2015-07-15 15:16:51 +08:00 真棒~ | 
|  |      4spacewander OP @Clarencep  还记得输入的是什么参数吗?我debug一下看看。如果原本find命令就是找不到任何东西的,那么按回车之后就没有输出。 | 
|  |      5spacewander OP 我刚刚更新了下代码,现在如果组装的命令出错,会把错误信息转发出来。 `sudo pip install findtui --upgrade`就可以升级啦。 | 
|  |      6run2      2015-07-16 17:34:55 +08:00 赞,可惜os x 下的find 没有n `illegal option -- n` | 
|  |      7Clarencep      2015-07-22 09:49:58 +08:00 | 
|  |      8Clarencep      2015-07-22 09:50:36 +08:00 | 
|  |      9Clarencep      2015-07-22 09:50:59 +08:00 v2ex不能发gif图片么 | 
|  |      10spacewander OP | 
|  |      11Clarencep      2015-07-27 09:49:01 +08:00 @spacewander 但是生成的命令好像有问题, 本来是想生成find -name main.py -exec test 的,但是实际生成的是find -name main.py -exec test -exec tes -exec te -exec t  .... | 
|  |      12spacewander OP |