如何使用不同的工作目录运行命令?

Are*_*efe 0 shell pwd

我使用这个 shell 管道通过终端获取 SQL 转储:

$ cd var/lib/mysql && mysqldump -uroot -p"craft" --add-drop-table craft > ~/../docker-entrypoint-initdb.d/base.sql && cd ~/..
Run Code Online (Sandbox Code Playgroud)

可以看出,我进入了该var/lib/mysql目录并将转储创建到一个文件中,然后从我最初所在的位置返回。

命令是正确的,但是,我想它可以像不直接进入var/lib/mysql目录一样简洁地编写。

有人可以建议吗?

Kus*_*nda 6

老实说,我根本看不出这两个电话的原因cd

你似乎没有使用你的目录 cd进入进行任何操作。您提供了数据库转储位置的绝对路径。如果需要任何自定义 MySQL 配置文件,则无论如何都将从用户的主目录中获取。

因此,您很可能只需使用

mysqldump -uroot -p"craft" --add-drop-table craft \
    > ~/../docker-entrypoint-initdb.d/base.sql
Run Code Online (Sandbox Code Playgroud)

无论您从哪个目录运行它。