Linux Bash写入文件的具体方法是什么

发布时间:2022-01-27 15:29:52 作者:柒染
来源:亿速云 阅读:412

这篇文章给大家介绍Linux Bash写入文件的具体方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

使用重定向操作符写入文件

在Bash中,输出的重定向使您可以从命令捕获输出并将其写入文件。

将输出重定向和写入文件的一般格式如下:

 output > filename
 output >> filename

Copy

您需要具有对该文件的写入权限。 否则,您将收到拒绝权限错误。

这是一个简单的示例,显示了如何将echo命令的输出重定向到文件:

 echo "this is a line" > file.txt

Copy

为防止覆盖现有文件,请使用内置的set启用“ noclobber”选项:

 set -o noclobber
 echo "this is a line" > file.txt

Copy

 bash: file.txt: cannot overwrite existing file

Copy

>|运算符可让您覆盖Bash的“ noclobber”选项:

 set -o noclobber
 echo "this is a line" >| file.txt

Copy

>>运算符将输出追加到文件末尾,而不是覆盖文件:

 echo "this is a line" >> file.txt

Copy

使用printf命令创建复杂的输出:

 printf "Hello, I'm %s.\n" $USER > file.txt

Copy

如果要将多个行写入文件,请使用heredoc文档(Heredoc)重定向。

例如,您可以将内容传递到cat命令并将其写入文件:

 cat  file.txt
 The current working directory is: $PWD
 You are logged in as $(whoami)
 EOF

Copy

要添加这些行,请在文件名之前将>更改为>>:

 cat > file.txt
 The current working directory is: $PWD
 You are logged in as $(whoami)
 EOF

Copy

您可以将任何命令的输出写入文件:

 date +"Year: %Y, Month: %m, Day: %d" > file.txt

Copy

date命令的输出将被写入文件。

使用tee命令写入文件

tee命令从标准输入读取并同时写入标准输出和一个或多个文件。

 echo "this is a line" | tee file.txt

Copy

tee命令的默认行为是覆盖指定的文件,与>运算符相同。 要将输出附加到文件,请使用-a(--append)选项调用命令:

 echo "this is a line" | tee -a file.txt

Copy

如果您不希望tee写入标准输出,则可以将其重定向到/dev/null:

 echo "this is a line" | tee file.txt >/dev/null

Copy

要将文本写入多个文件,请将文件指定为tee命令的参数:

 echo "this is a line" | tee file_1.txt file_2.txt file_3.txt

Copy

tee命令的另一个优点是,您可以将其与sudo结合使用,并写入其他用户拥有的文件。 要将文本追加到您没有写权限的文件中,请在tee之前加 sudo

 echo "this is a line" | sudo tee file.txt

Copy

echo命令输出作为输入传递到tee,这将提升sudo权限并将文本写入文件。

关于Linux Bash写入文件的具体方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. ssh访问linux出现乱码如何解决
  2. 在linux下安装anaconda的方法是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux bash

上一篇:Linux系统SWAP怎么理解

下一篇:jstat命令怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》