最好的当前目录搜索

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

最好的当前目录搜索

#1

帖子 eexpress » 2013-02-20 15:30

代码: 全选

loc(){
locate -eLin $(($LINES-4)) "`pwd`/*/$1"
}
这些用户感谢了作者 eexpress 于这个帖子:
eagle5678 (2013-11-25 10:03)
评价: 3.7%
● 鸣学
头像
aulara
帖子: 87
注册时间: 2013-01-05 16:29
系统: Precise
送出感谢: 0
接收感谢: 0

Re: 最好的当前目录搜索

#2

帖子 aulara » 2013-02-20 16:16

:em06 我感觉find已经挺够用的了
欢迎光临俺的ubuntu server小站:极光账本 aulara.cn
头像
cjxgm
帖子: 1950
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
送出感谢: 1 次
接收感谢: 30 次
联系:

Re: 最好的当前目录搜索

#3

帖子 cjxgm » 2013-02-20 19:09

cjxgm@cjprods ~$ locate
bash: locate: 未找到命令
:em06
没装过这货
头像
枫叶饭团
论坛版主
帖子: 14684
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
送出感谢: 1 次
接收感谢: 132 次
联系:

Re: 最好的当前目录搜索

#4

帖子 枫叶饭团 » 2013-02-20 19:58

这命令好久没用过了。。。
不过我还是打算加入我的zshrc里
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 最好的当前目录搜索

#5

帖子 eexpress » 2013-02-21 12:12

代码: 全选

● cat bin/fd
#!/bin/bash

if [ ! $1 ]; then
	echo "Find filename in current directory, need (multi) parameter."; exit
fi
#不搜索隐藏文件夹
cmd='find . ! -path "*/.*" '
for p in $*; do
cmd=$cmd"-iname \"*$p*\" "
done
echo -e "\e[1;34m>>>-----> $cmd\n\e[0m"
eval $cmd

代码: 全选

● fd section tex
>>>-----> find . ! -path "*/.*" -iname "*section*" -iname "*tex*" 

./Yunio/devhelp-books/gtk+-3.0/Gtk.StyleContext.get_section.html
./Ubuntu One/latex/pkg/section.tex
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 最好的当前目录搜索

#6

帖子 eexpress » 2013-03-05 0:12

代码: 全选

● cat ~/bin/fd
#!/bin/bash

redB='\x1b[1;31m'; blueB='\x1b[1;34m'; greenB='\x1b[1;32m'; end='\x1b[0m';

if [ ! $1 ]; then
	echo "Find filename in current directory, need (multi) parameter."; exit
fi
#不搜索隐藏文件夹
cmd='find . ! -path "*/.*" '
color='|sed'
for p in $*; do
cmd=$cmd"-iname \"*$p*\" "
color=$color" -e 'h;s:.*/::;s/$p/$redB&$end/g;x;s:[^/]\+$::g;G;s/\n//'"
done
echo -e "$blueB>>>> $cmd\n$end"
eval $cmd$color
cfy的sed帮忙的。
附件
screenshot1.png
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 最好的当前目录搜索

#7

帖子 eexpress » 2013-03-05 10:37

代码: 全选

● git df
diff --git a/fd b/fd
index 94c6b32..bb12422 100755
--- a/fd
+++ b/fd
@@ -7,10 +7,11 @@ if [ ! $1 ]; then
 fi
 #不搜索隐藏文件夹
 cmd='find . ! -path "*/.*" '
-color='|sed'
+color="|sed 'h;s:.*/::;"
 for p in $*; do
 cmd=$cmd"-iname \"*$p*\" "
-color=$color" -e 'h;s:.*/::;s/$p/$redB&$end/g;x;s:[^/]\+$::g;G;s/\n//'"
+color=$color"s/$p/$redB&$end/g;"
 done
+color=$color"x;s:[^/]\+$::g;G;s/\n//'"
 echo -e "$blueB>>>> $cmd\n$end"
 eval $cmd$color
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 最好的当前目录搜索

#8

帖子 eexpress » 2013-10-10 9:47

附件
screenshot4.png
screenshot4.png (7.35 KiB) 查看 2928 次
● 鸣学
flsf
帖子: 13
注册时间: 2012-10-05 15:25
系统: arch
送出感谢: 0
接收感谢: 1 次

Re: 最好的当前目录搜索

#9

帖子 flsf » 2013-10-10 15:30

顶~~~~~~~~~~~
flsf
帖子: 13
注册时间: 2012-10-05 15:25
系统: arch
送出感谢: 0
接收感谢: 1 次

Re: 最好的当前目录搜索

#10

帖子 flsf » 2013-10-10 15:31

顶~~~~~~~~~~~
头像
needle
帖子: 78
注册时间: 2009-12-01 13:34
送出感谢: 2 次
接收感谢: 5 次

Re: 最好的当前目录搜索

#11

帖子 needle » 2013-11-01 19:13

好强大,还有$LINES这个变量啊~
locate很好用啊~,就是不支持NTFS :em05
ubuntu的man很坑啊~,都找不到-n选项~
好些个命令都是, man, --help都列不全~
mark...
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~
头像
eagle5678
帖子: 1820
注册时间: 2006-07-08 14:07
送出感谢: 14 次
接收感谢: 1 次

Re: 最好的当前目录搜索

#12

帖子 eagle5678 » 2013-11-25 10:01

好吧,神
回复

回到 “Shell脚本”