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 -type f -name '*.php'

这样执行后就没有再报错了,一个小问题得到解决.

例子说明:

# 进入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

好了,就这样吧.

时间: 2024-12-31 00:30:04

linux报错find: paths must precede expression解决办法的相关文章

Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法_Mysql

Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法 一.问题描述 写好配置文件用JUnit进行测试,一运行就报错: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiat

linux下xhost命令报错:unable to open display的解决办法

  linux下执行xhost命令报错:unable to open display,解决方法,linux 下通过xhost进入图形界面,经常会出现报错"unable to open display" linux下的操作步骤如下: 1.复制代码: 复制内容到剪贴板 [root@localhost ~]# vncserver New 'localhost:1 (root)' desktop is localhost:1 Starting applications specified in

报错“Device is not STOR_DEV_REP_IS_SNAPABLE”的解决办法

故障现象: 报错信息 (hwprov.log): DoSnapshotResourcesExist: Calling FindNextMirrorReplica... FindNextMirrorReplica: Entering. FindNextMirrorReplica: No local mirror replicas were found for />, so now looking for remote mirror replicas. FindNextMirrorReplica:

Android打包apk报错:Errors occurred during the build 解决办法

   Android应用打包apk时报错:Errors occurred during the build,如图:        解决方法:选中Android应用项目,右键选则"Properties"  ,"Builders"中只勾选"Android Package Builder",如图:

oracle数据库报错Instance immediate crash after open解决办法

一个朋友公司的数据库出现异常,没有备份. 数据库open之后很快就crash掉,如下的alert log的信息: Tue Jul 08 22:53:03 2014 SMON: enabling cache recovery [13803] Successfully onlined Undo Tablespace 2. Undo initialization finished serial:0 start:7751194 end:7751284 diff:90 (0 seconds) Verify

tail命令报错No space left on device解决办法

# tail -f ../logs/catalina.out tail: cannot watch `../logs/catalina.out': No space left on device df -h 查看有剩余空间 df -i 查看inode也有剩余空间 最终解决: # vim /etc/sysctl.conf 添加以下: fs.inotify.max_user_watches = 32768 生效: # sysctl -p /etc/sysctl.conf 再次测试: # tail .

openssl报错 error: Cannot find OpenSSL s解决办法

解决办法 在CentOs系统中可以通过YUM来安装:  代码如下 复制代码 yum install openssl openssl-devel

Linux 报错"mount: unknown filesystem type

链接: http://blog.itpub.net/28602568/viewspace-1797429/ 标题: Linux 报错"mount: unknown filesystem type 'LVM2_member' "解决思路  作者:lōττéry版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] 前言: 同事叫把/dev/sda7 磁盘挂载到/data目录,当执行mount时报"mount: unknown filesystem type '

linux打开80端口及80端口占用解决办法

linux打开80端口 天客户那边有台服务器同一个局域网中都无法访问,排除lamp环境问题,发现时服务器中的防火墙没有开启80端口.于是去网上搜索了一下,在脚本之家看到一种添加代码的方法  代码如下 复制代码 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙) -A INPUT -m state –state NEW -m tcp -p tcp