[原创]用echo来查找文件_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2245 | 回复: 0   主题: [原创]用echo来查找文件        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2015-2-25 22:20:50 | [全部帖] [楼主帖] 楼主

我们一般会使用find来查找文件,用echo来查找文件你用过吗?

比如在ports里面查找screen:

root@10:/usr/ports# echo /usr/ports/*/*screen*
/usr/ports/distfiles/screen-4.2.1.tar.gz /usr/ports/graphics/kipi-plugin-debianscreenshots /usr/ports/misc/elscreen /usr/ports/net/p5-Net-Telnet-Netscreen /usr/ports/sysutils/screen /usr/ports/sysutils/screen-legacy /usr/ports/sysutils/screenfetch /usr/ports/sysutils/screenie /usr/ports/x11-fonts/font-screen-cyrillic /usr/ports/x11-toolkits/p5-Tk-Splashscreen /usr/ports/x11-wm/e17-module-screenshot /usr/ports/x11/gnome-screensaver /usr/ports/x11/mate-screensaver /usr/ports/x11/printscreen /usr/ports/x11/xfce4-screenshooter-plugin /usr/ports/x11/xscreensaver /usr/ports/x11/xscreensaver-gnome /usr/ports/x11/xscreensaver-gnome-hacks /usr/ports/x11/xscreensaver.app


注意不分行,一行会有超过两个结果。

但是这种方法有个限制,就是每个“*/”组合只能代表一组目录,看下面的例子,在src里找ath.c结尾的文件,不同数量的“*/”会有不同的结果:

root@10:/usr/src # echo /usr/src/*/*ath.c
echo: No match.
root@10:/usr/src # echo /usr/src/*/*/*ath.c
/usr/src/bin/realpath/realpath.c /usr/src/contrib/bmake/realpath.c /usr/src/contrib/gcc/c-incpath.c /usr/src/lib/libutil/_secure_path.c /usr/src/sys/net/radix_mpath.c /usr/src/usr.bin/patch/mkpath.c
root@10:/usr/src # echo /usr/src/*/*/*/*ath.c
/usr/src/contrib/binutils/libiberty/lrealpath.c /usr/src/contrib/gcclibs/libiberty/lrealpath.c /usr/src/contrib/ntp/ntpd/refclock_heath.c /usr/src/contrib/sendmail/libsm/path.c /usr/src/contrib/sendmail/libsm/t-path.c /usr/src/crypto/openssh/openbsd-compat/realpath.c /usr/src/lib/libc/rpc/getnetpath.c /usr/src/lib/libc/stdlib/realpath.c /usr/src/sys/dev/ath/if_ath.c /usr/src/sys/geom/multipath/g_multipath.c
root@10:/usr/src # echo /usr/src/*/*/*/*/*ath.c
/usr/src/contrib/apr/file_io/unix/filepath.c /usr/src/contrib/gcc/config/i386/crtfastmath.c /usr/src/contrib/gcc/config/ia64/crtfastmath.c /usr/src/contrib/gcc/config/sparc/crtfastmath.c /usr/src/contrib/libarchive/libarchive/test/test_archive_match_path.c /usr/src/contrib/libarchive/libarchive/test/test_write_format_mtree_absolute_path.c /usr/src/contrib/libarchive/tar/test/test_print_longpath.c /usr/src/contrib/subversion/subversion/libsvn_subr/path.c /usr/src/contrib/wpa/src/tls/libtommath.c /usr/src/crypto/heimdal/lib/krb5/expand_path.c /usr/src/sbin/geom/class/multipath/geom_multipath.c /usr/src/sys/dev/usb/wlan/if_uath.c /usr/src/sys/dev/vxge/vxgehal/vxgehal-virtualpath.c /usr/src/tools/regression/include/tgmath/tgmath.c
root@10:/usr/src # echo /usr/src/*/*/*/*/*/*ath.c
echo: No match.


结论:
在明确知道某个目录下、特别是还有很多子级目录的时候,比如ports树,这种用法效率是非常高的,因为它不需要进入每一个下级子目录。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论