Dawson Smith Asked: 2022-01-06 23:37:16 +0800 CST2022-01-06 23:37:16 +0800 CST 2022-01-06 23:37:16 +0800 CST 以下命令的解释一个接一个地执行 772 我有这两个命令一个接一个地执行。 cat a.log >> b.log rm -r a.log 这里到底发生了什么?为什么猫在这里被使用?>> 符号呢?使用的 -r(recursive) 标志是什么? command 1 个回答 Voted Best Answer roaima 2022-01-07T03:54:15+08:002022-01-07T03:54:15+08:00 考虑到您更正的代码, cat a.log >> b.log rm -r a.log 将cat其文件列表或stdin(如果未提供或-列表中包含破折号 ( ) )复制到其stdout。看man cat 这>>是一个标准的 shell 重定向运算符,它将命令的输出附加到命名文件。在示例中,此命名文件是b.log. 如果不是,请参阅man bash或您首选 shell 的文档,以及shell 的控制和重定向运算符是什么?bash 该rm命令(几乎)无条件地删除文件a.log。因为它试图删除一个文件,所以该-r标志无关紧要并被忽略。如果在交互式会话中运行,该命令将要求用户确认文件是否具有写入权限。看man rm 如果我正在编写这段代码,我可能会这样构建它 cat a.log >> b.log && rm -f a.log 在这里,a.log仅当cat成功将其内容附加到目标文件时才会删除文件b.log。
考虑到您更正的代码,
将
cat
其文件列表或stdin(如果未提供或-
列表中包含破折号 ( ) )复制到其stdout。看man cat
这
>>
是一个标准的 shell 重定向运算符,它将命令的输出附加到命名文件。在示例中,此命名文件是b.log
. 如果不是,请参阅man bash
或您首选 shell 的文档,以及shell 的控制和重定向运算符是什么?bash
该
rm
命令(几乎)无条件地删除文件a.log
。因为它试图删除一个文件,所以该-r
标志无关紧要并被忽略。如果在交互式会话中运行,该命令将要求用户确认文件是否具有写入权限。看man rm
如果我正在编写这段代码,我可能会这样构建它
在这里,
a.log
仅当cat
成功将其内容附加到目标文件时才会删除文件b.log
。