将输出重定向到命令结果给出的文件名

Bla*_*lia 2 linux bash shell

假设我有一个文件格式,我想将数据库备份保存为这样的:

echo "~/backups/$(date +'%Y-%m-%d_%H-%M-%S').sql"
Run Code Online (Sandbox Code Playgroud)

现在如何将此结果指定为 shell 中输出的文件名?

mysqldump my_db > ....?
Run Code Online (Sandbox Code Playgroud)

顺便说一句: shell 将嵌套的 echo 命令的结果解释为可执行命令/文件。所以    看起来:

 mysqldump my_db > $(echo "something")
Run Code Online (Sandbox Code Playgroud)

不起作用。相反,shell 会查找一个名为的文件something并尝试执行它?

anu*_*ava 5

无需使用嵌套回声。你可以避免它:

mysqldump my_db > ~/backups/$(date +'%Y-%m-%d_%H-%M-%S').sql
Run Code Online (Sandbox Code Playgroud)