用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什么的最棒了。
1
Shazoo 2015-07-13 16:32:24 +08:00
显然先star下~
|
2
Clarencep 2015-07-15 10:50:42 +08:00
试用了下,然后才发现——原来find还有这么多参数我还不知道,一直只用`find . -type f`...
只是偶选了各种参数后,然后按回车,再然后就没然后了... 什么输出都没有,什么错误提示都没有程序就退出了... |
3
townboy 2015-07-15 15:16:51 +08:00
真棒~
|
4
spacewander OP @Clarencep
还记得输入的是什么参数吗?我debug一下看看。如果原本find命令就是找不到任何东西的,那么按回车之后就没有输出。 |
5
spacewander OP 我刚刚更新了下代码,现在如果组装的命令出错,会把错误信息转发出来。
`sudo pip install findtui --upgrade`就可以升级啦。 |
6
sobigfish 2015-07-16 17:34:55 +08:00
赞,可惜os x 下的find 没有n `illegal option -- n`
|
7
Clarencep 2015-07-22 09:49:58 +08:00
|
8
Clarencep 2015-07-22 09:50:36 +08:00
|
9
Clarencep 2015-07-22 09:50:59 +08:00
v2ex不能发gif图片么
|
10
spacewander OP |
11
Clarencep 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
.... |
12
spacewander OP |