find . -name dbmsblmon.sql 查找不到
时间: 2024-03-09 21:50:12 浏览: 52
如果在执行 `find . -name dbmsblmon.sql` 命令时找不到 dbmsblmon.sql 文件,可能是因为您没有安装 DBMS_BLOCK_MONITOR 包。
您可以使用以下命令安装该包:
```
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
@dbmsblmon.sql
```
其中,`$ORACLE_HOME` 是您的 Oracle 安装路径。请确保已经使用具有 SYSDBA 角色的用户登录到数据库实例中以进行安装。
如果以上方法无法解决问题,可能是因为您的 Oracle 安装路径不同或者该文件不存在。在这种情况下,请提供更多详细信息,以便我们更好地帮助您解决问题。
相关问题
为什么find . -name *.c 和find . -name "*.c"执行得到的结果不一样
执行 find . -name *.c 的结果可能会受到 shell 的影响,因为 shell 会先对通配符进行扩展,所以实际执行的命令可能是类似于 find . -name file1.c file2.c file3.c 的形式,这样的话只会匹配到以 file3.c 结尾的文件,而不是所有以 .c 结尾的文件。
而执行 find . -name "*.c" 的命令中,通配符被双引号包含,所以 shell 不会对它进行扩展,find 命令能够正确地匹配所有以 .c 结尾的文件。
解释以下命令有何不同: find .-name '[A-H]' *-print find .-name '[A,H]' *-print
这两个命令都是用来在文件系统中查找文件的,但它们存在一些差异。下面我会逐一解释这两个命令的不同之处:
1. `find . -name '[A-H]' * -print`
这个命令会在当前目录(包括其子目录)中查找文件名以大写字母A至H开头的文件,并将找到的文件名打印输出。这里假设大括号`*`是命令中的一部分,但通常`*`是一个通配符,放在文件名模式中用来匹配任何字符序列。然而,在`-name`选项中,应该用单引号或双引号将模式括起来,以防止shell解释`*`。正确的命令应该是:
```
find . -name '[A-H]*' -print
```
这样会匹配所有以A到H字母开头的文件名。
2. `find . -name '[A,H]' * -print`
这个命令的意图应该是查找文件名包含'A'或'H'字符的文件,但是这种写法在`-name`选项中是不正确的,因为它没有被正确地引起来。正确的写法应该是:
```
find . -name '[AH]' -print
```
或者:
```
find . -name '[A,H]' -print
```
以上两种写法都会查找文件名中包含'A'或'H'的文件,并打印它们的名字。注意,这里假设`*`不是命令的一部分,因为如果`*`是参数,它应该放在引号外。
在第二个命令中,如果`*`是作为通配符使用,并且放在引号之外,那么它会导致`find`命令尝试匹配以`[A,H]`开头的文件,这不会按预期工作,因为方括号内的内容不会被shell扩展为匹配的文件。
阅读全文