find: paths must precede expression(转)

find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

然后就上网查了一下,结果搜索到一篇,大概是这样说的:多文件的查找的时候需要增加单引号

而我之前一直都是用的双引号,也没有遇到问题,这次却报错了~

ssh $ip "cd $path;find . -name access*log -print -exec zip -r access.$month.zip {} \;"

修改成单引号后,木有再见报错~

例子说明:

# 进入tmp目录新建4个文本文件
# cd /tmp
# touch {1,2,3,4}.txt
# find . -name *.txt
find: paths must precede expression: 2.txt

出现这个提示是因为星号被展开为当前目录下所有的文件,这样的匹配当然会出错。看这个就知道了:

# echo *
1.txt 2.txt 3.txt 4.txt
# echo ‘*‘
*
# echo \*
*

想要星号不被展开就需要加上括号或者反斜杠转义,知道了这些我们就知道该怎么find了

# find . -name ‘*.txt‘
find . -name ‘*.txt‘
./4.txt
./2.txt
./3.txt
./1.txt
#或者使用反斜杠
 find . -name \*.txt
./4.txt
./2.txt
./3.txt
./1.txt

http://blog.csdn.net/zhuying_linux/article/details/7610416

时间: 2024-10-10 13:57:25

find: paths must precede expression(转)的相关文章

linux删除过期文件

建立删除文件脚本 #!/bin/sh #定义所删除目录路径 location="/u01/app/oracle/admin/jmhrms/bdump" find $location -mtime +365 -type f -name 'jmhrms_*.trc' -exec rm -f {} \; 或者 #!/bin/sh find /u01/app/oracle/admin/jmhrms/bdump -mtime +365 -type f -name 'jmhrms*.trc' |x

linux 常用命令学习记录

rm -f *.sh 2.grep -rn "enng" * 查找文件内容包含enng的文件(注意:文件名有xian的不会查询出) find . ! -name "*.sh" 查找文件后缀名不为sh的文件 find . -type d -name abc* 查找以abc开头的目录 find: paths must precede expression: abc2 解决方法: -name 的匹配字符串一定要用单引号或双引号引住,防止以上问题发生. find . -ty

【linux】find命令详解

find命令格式:find [搜索范围][匹配条件] -name 参数:按照名字查找 [[email protected] ~]# find /root -name test ###精确查找 /root/test /root/.cpan/build/Template-Toolkit-2.26-LlOKAK/t/test [[email protected] ~]# find /root -name test??###模糊查找 /root/.cpan/build/PadWalker-2.2-Tvk

LINUX命令报错

1.find: paths must precede expression [[email protected] /]# find find /u01/app/diag/tnslsnr/fossdb/listener/alert -name log_*.xml find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression] [[email protected] /]# 进行查找资料,多文件

Ansible 运维自动化(一)

Ansible只需要在一台普通的服务器上运行即可,不需要在被管控的服务器上安装客户端.因为它是基于SSH的,Linux服务器离不开SSH,所以Ansible不需要为配置工作添加额外的支持. 你可以通过命令行来使用Ansible,运行Ansible的服务器这里俗称“管理节点”:通过Ansible进行管理的服务器俗称“受控节点”. Ansible优点: 1) 轻量级,不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可,采用SSH协议. 2) 批量任务执行可以写成脚本,而且不用分发

在Linux使用exec执行命令时报的哪些错

问题1:find: paths must precede expression [[email protected] data]# find /oracle/backup/exp/data -name exp_table01_db01_*.dmp.gz -atime +2 exec rm -rf {}\;find: paths must precede expression: exp_table01_db01_20170928235039.dmp.gz 描述:在执行find命令时,在查找的内容必

shell-find错误解析

之前写过一篇文章,用shell定时清除过期文件<shell定时清除过期文件>,其实用的就是简单的find命令 后面同事采用之后,他调试脚本的时候,出现了几个错误,我做了整理: 1.find: paths must precede expression: exec 表达式不完整,在exec之前加一个执行符号"-",就好了 2.find: missing argument to `-exec' 根据提示,错误的参数-exec,其实是提示你表达式错误了 原本语句是这样的"

Linux-四剑客-find-awk-grep-sed解释----未完结版

Linux的四剑客作者:张首富2018/07/15[TOC] find 查找文件或目录 说明 find - search for files in a directory hierarchy 搜索目录层次结构中的文件用来在指定目录下面查找文件或目录,任何位于参数之前的字符串都被视为想在那个目录下面查找 命令格式: `find 目录 选项 参数` 命令选项 -type指定要查找的文件类型. d 目录f 文件l 链接文件实例: [[email protected] tmp]# touch 1.txt

Linux学习第八篇之文件搜索命令find

一.find命令:(Windows搜索小工具推荐——Everything) 命令名称:find 命令所在路径:/bin/find 执行权限:所有用户 语法:find [搜索范围] [匹配条件] 功能描述:文件搜索 二.find命令的例子: 1.find /etc -name init 在目录/etc中查找文件init(会在子目录下的文件继续搜索init),-name 搜索条件的选项,文件名是全匹配的,模糊搜索可用通配符处理,如find /etc -name *init*,如果报find: pat