我无法在目录中查找多个文件

我无法在目录中查找多个文件

我编写了一个脚本来获取数据库中表的所有 ddl,然后将数据库中的所有表合并到单个文件中

可以说我有类似的数据库mydatabase和表mytable

我将数据库中的所有表 ddl 转储到临时目录中,临时目录中的 ddl 如下所示/home/rahul/temp/mydatabase.mytable.ddl,一旦转储数据库下的所有表,我将尝试将所有表 ddl 合并到一个文件中,如下所示

cat /home/rahul/temp/mydatabase*ddl >> /home/rahul/final/mydatabase.create

结果出现以下错误:

cat: /home/rahul/temp/mydatabase*ddl: No such file or directory

我该如何解决?

答案1

也许您关闭了 shell 通配符set -f?

$ ls mydatabase*ddl
mydatabase1.ddl  mydatabase2.ddl  mydatabase3.ddl

$ set -f
$ ls mydatabase*ddl
ls: cannot access 'mydatabase*ddl': No such file or directory

$ set +f
$ ls mydatabase*ddl
mydatabase1.ddl  mydatabase2.ddl  mydatabase3.ddl

答案2

如果cat无法处理*通配符,请快速破解:

for file in /home/rahul/temp/mydatabase*ddl; do cat $file >> /home/rahul/final/mydatabase.create; done

我知道我可以使用 shell 变量作为输入和输出文件,并制作一个更复杂的 shell 脚本,但这应该足以处理这个问题。

相关内容