mv 命令将目录名称与命令选项混淆

mv 命令将目录名称与命令选项混淆

我有一个名为 的目录--pycache--,我需要将其移动到__pycache__mv按以下方式使用命令,我会得到列出的输出。我如何使用CLI来做我想做的事情?

$ mv --pycache-- __pycache__
/bin/mv: unrecognized option '--pycache--/'

答案1

这是文件名/目录以不太常见的符号开头时的一个标准问题。您的问题是 mv 将 --pycache-- 视为长选项名称(因为它以 -- 开头,所以也有短选项,它们以 - 开头)。请参阅手册页获取选项了解有关多头期权和空头期权的详情。

在这种情况下,标准的解决方法是使用空的双破折号--在所有参数之前,它告诉命令(在您的情况下是 mv,但可以与其他命令一起使用,例如 cp)停止将后面的内容视为选项并将其视为参数。

因此,你的命令将变成:

$ mv -- --pycache--/ __pycache__

并且不会失败。

答案2

您的第一个字符-对于命令来说是模棱两可的mv(或者更确切地说,它明确地意味着后面跟着一个选项名称)。

尝试一下这个:

mv ./--ppycache-- __pycache__

来源:linux.about.com

相关内容