使用日期时,mv 失败,原因为目标不是目录

使用日期时,mv 失败,原因为目标不是目录

我运行这个

sudo mv /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.{,$(date +%Y%m%d%H%M%S)}

我得到:

mv:目标'/etc/mysql/mysql.conf.d/mysqld.cnf.20190517170628'不是目录

跑步

sudo mv /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.222

但确实有效

有任何想法吗?

答案1

 /etc/mysql/mysql.conf.d/mysqld.cnf.{,$(date +%Y%m%d%H%M%S)}

这会扩展为两个文件,因此一旦执行括号扩展,您将总共获得 3 个 mv 命令的命令行参数。使用 echo 而不是 mv 进行验证

当使用 3 个或更多参数调用 mv 时,它会将除最后一个之外的所有文件视为要移动的文件,并将最后一个项目视为要移动内容的目标目录。也就是说

mv file1 file2 directory

如果您的目标只是移动一个特定的文件,则可以省略花括号扩展,只使用日期命令进行命令替换

相关内容