linux中and运算符文件重定向,详解使用重定向运算符写入文件及使用tee命令写入文件...

编写Bash脚本或在Linux命令行上工作时,最常见的任务之一是读写文件。

本文介绍了如何使用重定向操作符和tee命令将文本写入Bash中的文件。

使用重定向运算符写入文件

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

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

output>filename

output>>filename

>重定向操作符将输出写入给定的文件。如果文件存在,它将被截断为零长度。否则,将创建文件。使用这个操作符时要格外小心,因为你可能会覆盖一个重要的文件。

>>重定向操作符将输出追加到指定的文件。如果文件不存在,则创建该文件。

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

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

[email protected]:~$echo"welcometowww.linuxmi.com">linuxmi.txt

6428ada5d0a1e7cf2bcd4d5fe476bb68.png

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

[email protected]:~$set-onoclobber

[email protected]:~$echo"welcometowww.linuxmi.com">linuxmi.txt

输出如下:

bash: linuxmi.txt:无法覆盖已存在的文件

533995e1069a0aac90c91ae4b9f38e70.png

>|操作符允许你覆盖Bash的" noclobber "选项:

[email protected]:~$set-onoclobber

[email protected]:~$echo"welcometowww.linuxmi.com">|linuxmi.txt

>>操作符将输出追加到文件的末尾,而不是覆盖文件:

[email protected]:~$echo"welcometowww.linuxmi.com">>linuxmi.txt

aaad4d9be00174a557449c32a9206ff0.png

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

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

如果要将多个行写入文件,请参考Here document(Heredoc)重定向。

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

cat

当前的工作目录是: $PWD

您以以下身份登录 $(whoami)

EOF

要附加这些行,在文件名之前用>>修改>:

cat<>linuxmi.txt

当前的工作目录是: $PWD

您以以下身份登录 $(whoami)

EOF

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

[email protected]:~$date+"Year:%Y,Month:%m,Day:%d">xxvi.txt

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

499213a1b8158e962ddf46c4d7166e7d.png

使用tee命令写入文件

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

[email protected]:~$echo"welcometowww.linuxmi.com"|teelinuxmi.txt

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

[email protected]:~$echo"welcometowww.linuxmi.com"|tee-alinuxmi.com.txt

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

[email protected]:~$echo"welcometowww.linuxmi.com"|teewww.linuxmi.com.txt>/dev/null

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

[email protected]:~$echo"welcometowww.linuxmi.com"|teefile_1.txtfile_2.txtfile_3.txt

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

[email protected]:~$echo"welcometowww.linuxmi.com"|sudoteelinuxmi.txt

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

总结

在Linux中,要将文本写入文件,请使用>和>>重定向运算符或tee命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值