zoukankan      html  css  js  c++  java
  • 关于find命令 name 匹配字符无法正确生效的问题 find: paths must precede expression:

    linux下find命令
     
    find /yazuo_apps/crm35/current -name *.sh;
     
    此命令在某些情况下不能顺利找到/yazuo_apps/crm35/current下的*.sh文件
     
    -name后面的参数 *.sh 并不一定会直接传给 find命令,而是现在当前目录下进行匹配
     
    根据当前目录的匹配情况,可能有一下三种可能:
     
    1、当前目录不存在*.sh,此时shell会顺利的把 *.sh传递给find命令,此时一切顺利。
    2、当目录存在一个abc.sh时,shell命令实际变为 find /yazuo_apps/crm35/current -name abc.sh;
    3、当前目录存在多个sh文件(abc.sh; cba.sh),shell命令实际变为 find /yazuo_apps/crm35/current -name abc.sh cba.sh;,此时因为-name后面有两个匹配字符,shell将报错。
     find: paths must precede expression:
     
    解决方法:
    -name 的匹配字符串一定要用单引号或双引号引住,防止以上问题发生。
    正确的命令:
    find /yazuo_apps/crm35/current -name "*.sh";
     
    总结:
    shell的细节还是有很多需要研究,在以后的使用过程中要力求严谨!
     
    参考文章
    http://zhousir.sinaapp.com/?p=81#comment-486
  • 相关阅读:
    VBA的几个小Demo_2
    VBA的几个小Demo
    Django部署在阿里云服务器上
    python面试题及解析
    Django知识扩展
    Django文件下载2
    Django文件下载
    Django文件上传
    My_First_Web
    10个jQuery小技巧
  • 原文地址:https://www.cnblogs.com/baibaluo/p/2642403.html
Copyright © 2011-2022 走看看