linux终端命令写文件--重定向、tee命令
# 使用 echo 或 printf
提示
中心还是利用重定向符>
实现把内容输出到文件(不存在则创建)中,及tee命令读取输入写入文件
# 坤本功
注意,使用双引号写文件内容中包含美元符$,反斜杠\,反引号`,双引号"时,请在前面添加反斜杠进行转义,避免这些特殊字符的特殊作用。
# echo 命令用于在终端显示字符串或变量,可以配合重定向操作符 (>, >>) 来向文件写入内容。
使用 > 写入内容,这会覆盖文件原有的内容:
echo "这是新的文件内容" > filename.txt
1
这条命令会创建(如果文件不存在)或清空(如果文件已存在)filename.txt,然后将指定的文本写入文件。
使用 >> 追加内容到文件末尾:
echo "这是追加的内容" >> filename.txt
1
如果文件不存在,它会被创建。如果文件存在,新内容会被追加到文件的末尾。
# 使用 printf 命令配合重定向操作符 (>, >>) 来向文件写入内容。
printf 命令比 echo 提供了更多的格式化选项。它也可以用于向文件写入内容。
写入或覆盖文件:
printf "第一行内容\n第二行内容\n" > filename.txt
1
追加内容到文件:
printf "追加的第一行内容\n追加的第二行内容\n" >> filename.txt
1
# 其他命令搭配重定向“>”
在上面的echo
,printf
命令中可以学习到,重定向写文件实际是将前面命令的结果输出写入文件
那么很多linux命令都可以搭配重定向符号使用,将命令结果输出到重定向的文件中,如果这个文件不存在,会先创建这个文件,再把结果输出到文件中
测试:
touch 1.php;touch 2.php;touch 3.php;
ls > 1.txt
1
2
2
结果:
root@out:/var/www/html# ls
1.php 1.txt 2.php 3.php
root@out:/var/www/html# cat 1.txt
1.php
1.txt
2.php
3.php
1
2
3
4
5
6
7
2
3
4
5
6
7
# 重定向“<”
echo $(< file)
1
重定向符“<”会读取文件,$()在命令行中有命令替换的作用,替换成命令的结果,这里先用重定向符读取文件内容,替换到echo后,再打印出来
# 进阶
使用十六进制转义得到目标字符,绕过过滤
php的echo转义要用双引号
echo "\x3f";
1
linux系统echo转义要-e参数
echo -e '\x3f';
1
# tee命令
如果>
被过滤时,还可以使用tee
命令来直接写文件
echo "This is a line." | tee filename.txt
1
在上面的命令中,echo
命令的输出被管道(|
)传递给tee
命令,tee
命令将输出写入filename.txt
文件,并在终端上显示。
左边的命令可以合理的替换为其他命令
编辑 (opens new window)
最后一次更新于: 2024/10/24, 13:00:42