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-11-08 17:13:44

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

linux报错find: paths must precede expression解决办法

  今天在服务器上执行find ./ -mtime +30 -type f -name *.php的时候,报下面的错误: find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression] 然后就上网查了一下,结果搜索到一篇,大概是这样说的:多文件的查找的时候需要增加单引号,一直是使用的双引号,没想到找多文件的时候居然要单引号.好吧,又学了一招,修改后: find ./ -mtime +30

Linux中find查找文件find: paths must precede expression错误

·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} ; find命令的参数: pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录. -print: find命令将匹配的文件输出到标准输出. -exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' { } ;,注意{ }和:之间的空格. -ok: 和-exec的作用

oracle10g-利用sqoop把数据从Oracle导出到hive报错

问题描述 利用sqoop把数据从Oracle导出到hive报错 bash-4.1$ sqoop import --connect jdbc:oracle:thin:@192.168.1.169:1521:orcl --username HADOOP --password hadoop2015 --table CALC_UPAY_DATE_HADOOP_HDFS --split-by UPAYID --hive-import Warning: /usr/lib/sqoop/../accumulo

Linux Shell简介_linux shell

前言 第一篇:超级工具/Terminals,xterms 和 Shells 一.超级工具 二.为了说明 shell ,这里需要一些背景知识. 1.Terminals, xterms 与 Shells 2.终端(Terminals) 3.xterms 4.Shells 三.Shell 起步 第二篇:自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 一.自动补齐: 二.命令行的历史记录 三.可用的 Shell 快捷方式 第三篇:命令的排列/命令的任务调度/命令的替换 一.命令的排

【shell 】syntax error in conditional expression

编写shell 脚本时遇见 syntax error in conditional expression 错误, #!/bin/bash # cleanup /var/log/message LOG_DIR=/var/log ROOT_DID=0 LINES=50 E_XCD=66 E_NOTROOT=67 if [[ "$UID" -ne "$ROOT_UID"]] then  echo "Must be root to run this script.

printf-invalid use of void expression

问题描述 invalid use of void expression void dd(char* c){ int i=0;int j; while (c[i]) i++; i=i-1; for(j=0;j<i/2;j++) swap(c[j]c[i-j]);}int main(){ char c[]=""123""; printf(""%s""dd(c));} 解决方案 printf(""%s&qu

REGULAR EXPRESSION IN VBSCRIPT

express|vbscript|express|vbscript   REGULAR EXPRESSION IN VBSCRIPTObject RegExp is used to create and execute regular expression Ex.Code:strTarget="test testing tested attest late start"Set objRegExp= New RegExp   'create a regular expression ob

CSS巧用expression来区分只读文本框

css|express|文本框     对于文本框,只读状态下和普通状态下,浏览器对其并没有做什么特殊的标记,表面看来,效果是一样的,这样,对用户来说,易用性并不是很高.     当然,我们可以改变只读文本框的背景颜色来加以区分,这个时候就需要程序员自己判断这个文本框是不是只读,然后再引入相应的css,无疑加大了工作量.     这里,使用expression来提供一种解决方案,只需要每个页面引入这个css即可,其它的都由程序自己判断,如下: <style>input{background-c

巧用expression区分只读文本框和普通文本框的背景色

express|文本框 对于文本框,只读状态下和普通状态下,浏览器对其并没有做什么特殊的标记,表面看来,效果是一样的,这样,对用户来说,易用性并不是很高. 当然,我们可以改变只读文本框的背景颜色来加以区分,这个时候就需要程序员自己判断这个文本框是不是只读,然后再引入相应的css,无疑加大了工作量. 这里,使用expression来提供一种解决方案,只需要每个页面引入这个css即可,其它的都由程序自己判断,如下: <style>input{background-color:expression(