linux脚本命令讲解

linux脚本命令讲解

当我阅读makefile脚本时,我遇到了以下linux脚本命令:

mv obj/*.o .  2>/dev/null 

这个命令是什么意思?我的理解是将文件夹中mv obj/*.o .所有带后缀的文件移动到当前文件夹。是什么意思?将它们组合在一起有什么用?谢谢!oobj2>

答案1

您正在查看输出重定向(Bash)。2 代表“stderr”,即错误输出。通过将其重定向到/dev/null,您将把它丢弃到遗忘中。不过,常规输出“stdout”或 1 仍然会显示(默认情况下在您的终端中)。

基本上,这只是使mv命令的错误输出静音。

上面链接中的一段代码对此进行了更为概括的解释:

COMMAND_OUTPUT >
  # Redirect stdout to a file.
  # Creates the file if not present, otherwise overwrites it.

  ls -lR > dir-tree.list
  # Creates a file containing a listing of the directory tree.
[..]
1>filename
  # Redirect stdout to file "filename."
1>>filename
  # Redirect and append stdout to file "filename."
2>filename
  # Redirect stderr to file "filename."
2>>filename
  # Redirect and append stderr to file "filename."
&>filename
  # Redirect both stdout and stderr to file "filename."

答案2

顺便说一句,有时您可能希望阻止在屏幕上显示,但可能希望将其捕获到文件中。如果是这种情况,您可以执行以下操作:

mv obj/*.o . > move.log 2>&1

相关内容