【发布时间】:2011-11-19 09:36:33
【问题描述】:
我在 MySQL 中,想更改当前工作目录。我尝试执行:
mysql> system cd './my_dir'
但是,这似乎不起作用。有没有人遇到过类似的问题?
【问题讨论】:
-
操作系统
windows或linux?因为system命令只适用于unix/linux平台。 -
你想达到什么目的?
我在 MySQL 中,想更改当前工作目录。我尝试执行:
mysql> system cd './my_dir'
但是,这似乎不起作用。有没有人遇到过类似的问题?
【问题讨论】:
windows 或linux ?因为system 命令只适用于unix/linux 平台。
系统将生成一个子进程来运行 shell 命令.....
当前工作目录是一个进程级别的属性....所以你不能在父进程中从子进程中更改它。这就是它不起作用的原因。
我在http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html 简要扫描了 MySQL 文档,但没有看到更改工作目录的直接 CD 命令。我认为一个喜欢冒险的人可以写一个....
【讨论】:
如果您想更改脚本的当前工作目录,请在 CD 和脚本之间使用 &&,以便更改目录,然后如果成功,它将执行第二个命令。
mysql> SYSTEM cd /home && ls
【讨论】:
/home 的内容,但不会更改当前工作目录。例如。当你进入 mysql shell 时,mysql 将寻找与你所在的 CWD 相关的文件
您正在寻找的是转义到 shell 命令:\!
mysql>\! cd ./my_dir
你甚至可以用它完全逃到shell,然后回到mysql环境。
mysql>\! bash
bash>cd ./my_dir
bash>exit
mysql>SELECT * ALL FROM <table>;
【讨论】:
\! bash 时,您正在创建一个新的shell 环境。