我需要导入的目录中有一堆 .sql 文件。尽管我可以手动执行此操作,但出于脚本编写目的,我需要能够批量应用它们。我怎样才能做到这一点呢?我需要什么选项和命令的组合?
mysqlimport 命令如下所示:
mysqlimport [options] db_name textfile1 [textfile2 ...]
我需要能够将所有文本文件添加到末尾。如果可能的话,我更喜欢命令而不是复杂的 for 循环。
有什么建议么?
答案1
使用通配符:
mysqlimport [options] db_name /path/to/sql/files/*
如果该目录中有非 SQL 文件,则您想要导入的文件子集的文件名的某些部分可能是相同的。例如,如果它们都以 结尾.sql
,则命令变为:
mysqlimport [options] db_name /path/to/sql/files/*.sql
如果您来自 DOS/Windows,您可能不清楚为什么这样做。在 Unixy 系统上,shell 扩展通配符,因此程序(mysqlimport
在本例中)不必有自己的处理。这就是为什么您引用的使用消息表示它希望单独给出文件:如果您使用上述命令,这就是它查看文件的方式。如果模式不匹配任何内容,程序只会看到通配符; shell 将其逐字传递给程序,没有更好的方法来处理它。