我想要向某个文件附加一些内容,该文件的扩展名为“.log”。文件夹中只有一个文件具有该扩展名。当我尝试
(echo "host name:" hostname) >> *.log
bash 创建一个名为 的文件*.log
。如果有多个文件具有该扩展名,我只想选择以“tailor”开头并以“.log”结尾的文件。我该怎么做?
答案1
重定向必须明确。只要重定向能解析到一个特定文件,您就可以在重定向中使用通配符。
echo "Host name:" $HOSTNAME >> *.log
将添加到现有的 .log 文件,前提是它是文件夹中唯一的 .log 文件。
- 如果有多个匹配的文件,您将收到一条错误消息,指出重定向不明确。
- 如果没有匹配的文件,重定向将创建一个具有所提供的确切名称的文件,即包括通配符。
您获得的最后结果表明,当您尝试该命令时没有 .log 文件存在。
您可以将通配符缩小到更具体,例如,在您的情况下,您可以使用“tailor*.log”作为掩码。