关于find命令在shell环境工作时出错的理解
来源:互联网 发布:网络销售成功案例 编辑:程序博客网 时间:2024/06/08 09:14
文章出处:http://zhousir1991.diandian.com/page/4
[root@my ~]# find . -name *.rpm
./Nessus-4.0.1-es5.i386.rpm
[root@my ~]# find . -name *.tar.gz
find: paths must precede expression: recordmydesktop-0.3.8.1.tar.gz
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
[root@my ~]# find . -name '*.tar.gz'
./gtk-recordmydesktop-0.3.8.tar.gz
./recordmydesktop-0.3.8.1.tar.gz
以上是本人遇到的问题,加了单引号之后解决:网上找到相关资料得以解决,引自互联网, 版权问题请联系本人!
find / -name mysql* 中 -name的参数并不是实际的 mysql* ,而是shell 先解析msyql* ,如果在当前目录能找到mysql开头的文件名或者目录名,将匹配后的文件名或者目录名作为name的参数传给它,分以下三种情况:
1、假如当没有可匹配的shell将 mysql* 传给find;
2、假如只匹配到一个会正常执行find命令,但是结果是错误的,比如当前目录只有mysqla一个目录或者文件,shell会将 mysqla 作为name的参数传给find,然后执行命令;
3、假如匹配到多个就会报错,错误提示如下:
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
也就是说当有多个文件或者目录被匹配时,shell会将被匹配的所有文件或者目录名作为name的参数传给find,这样就致使find无法正常执行。比如当前目录有mysqla , mysqlb 里面文件,shell匹配后的命令行是find / -name mysqla mysqlb ,这样find就无法正常执行。
而find / -name “mysql*” ,shell不会解析 mysql* 这个表达式,直接将mysql* 传给find,find会正常执行,并且得到你想要的结果。
总结:在以后的shell使用过程中应力求严谨!
- 关于find命令在shell环境工作时出错的理解
- shell的find命令
- 工作常用的android adb shell命令 (mac环境)
- shell: find命令的使用方法
- shell: find命令的使用方法
- 性感的shell命令--find
- shell find 命令的用法
- 解决在windows环境中编写shell脚本,在Linux运行出错的问题
- 在windows环境下使用常用的linux shell 命令
- shell中find命令的使用要点
- shell下find命令的使用
- linux shell中Find命令的使用
- shell中find命令的使用要点
- linux shell中Find命令的使用
- Shell 命令 find 的常见用法
- shell脚本 find命令
- shell笔记--find命令
- shell 命令 笔记--find
- STL源码学习----lower_bound和upper_bound算法
- 各种手机或平板的外围器件datasheet的下载地址和相关介绍
- Android之TelephonyManager类的方法详解
- 关于TortoiseSVN的汉化
- 指针 示例剖析
- 关于find命令在shell环境工作时出错的理解
- 试图运行项目时出错:未能加载文件或程序集 或它的某一个依赖项。该模块应包含一个程序集清单
- Spring基于ThreadLocal的“资源-事务”线程绑定设计的缘起
- QT4 窗口切换
- thread
- 黑马程序员_.NET学习6(js)
- Shinichi Suzuki:Nurtured by Love-The classic Approach to Talent Education
- ABExternalChangeCallback---监听AddressBook的变化
- What's Next