如何通过重定向在Linux终端任意读写数据
这篇文章主要为大家展示了“如何通过重定向在Linux终端任意读写数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何通过重定向在Linux终端任意读写数据”这篇文章吧。
十余年的振兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整振兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“振兴网站设计”,“振兴网站推广”以来,每个客户项目都认真落实执行。
重定向是一种十分高效的数据流动方式,它能帮你减少很多鼠标和键盘上的操作。
对于任何编程或脚本语言,输入与输出重定向都是很自然的功能。严格来说,当你使用电脑时,数据自然而然地在发生着重定向。从 stdin
(标准输入,通常是你的键盘或者鼠标)读取输入,输入则发往 stdout
(标准输出,一段文本或者数据流),最后错误信息送至 stderr
。如果你使用 Bash 或 Zsh 之类的 shell,那么理解这些数据流能够让你更好地控制信息流向。
标准输入、标准输出以及标准错误输出都存在于 Linux 文件系统中。你可以在 /dev
查看:
$ ls /dev/std*/dev/stderr@ /dev/stdin@ /dev/stdout@
你可能没法直接使用它们,但将它们想象成你能传递数据的元位置,会很有帮助。
重定向的基础很简单:用一些 >
符号重定向输出,然后用另外一些 <
符号重定向输入。
重定向输出
将 ls 命令的输出写入一个文件:
$ ls > list.txt
你没法像平常那样看到 ls
的输出,因为它们并没有被发送到屏幕,而是被写入 list.txt
文件了,这个功能用处太多了,事实上,你甚至可以用它来将文件内容拷贝到另一个文件。不一定是文本文件,你也可以用将重定向用于二进制数据:
$ cat image.png > picture.png
(你可能会好奇为什么要这样做,有时候对于 文件权限信息 而间接有用。)
重定向输入
你也能将输入重定向“到”一个命令。可以说,它没有重定向输出那么有用,因为许多命令已经被硬编码,只从你的参数中接收输入。但是,如果某个命令需要一系列参数,而且你把这些参数写在文件里,想要快速“复制粘贴”到终端的时候(除非你并不想复制粘贴),它就帮得上忙了。
$ sudo dnf install $(重定向输入得常规用法是嵌入文档(简写成 here-doc)和嵌入字符串 技巧。这种输入方法将一整块文本重定向至标准输入流,直到碰见一个特殊的文件结束标记(许多人习惯用
EOF
,实际上你可以使用任何字符串,只要它是唯一的)。试着把这些(在第二个EOF
标记之前)敲进你的终端:$ echo << EOF> foo> bar> baz> EOF输出结果:
foobarbaz使用 Bash 编写脚本的人常常用这个技巧,将数行文本一次性写入文件或者打印到屏幕上。只要你别忘了末尾的文件结束标记,这会是一个帮你避免大量繁琐
echo
或printf
语句的好办法。嵌入字符串类似于嵌入文档,但是它只含有一个字符串(或者用引号包裹的几个字符串,同样会被当成一个字符串)
$ cat <<< "foo bar baz"foo bar baz重定向错误信息
错误信息流叫做
stderr
,通过2>
实现这个目的。下面这个命令把错误信息定向到output.log
文件:$ ls /nope 2> output.log将数据送往 /dev/null
既然标准输入、标准输出和错误输出都有自己的位置,那么“空空如也”也应该在 Linux 文件系统占有一席之地。没错,它叫做
null
,位于/dev
,频繁使用的人懒得说 “slash dev slash null”,于是索性叫它 “devnull”。通过重定向,你可以把数据发送到
/dev/null
。比如,find
命令常常会输出很多具体信息,而且在搜索文件遇到权限冲突时,会事无巨细地报告:$ find ~ -type f/home/seth/actual.filefind: `/home/seth/foggy': Permission deniedfind: `/home/seth/groggy': Permission deniedfind: `/home/seth/soggy': Permission denied/home/seth/zzz.file
find
命令把那些当作错误,所以你可以只把错误信息重定向至/dev/null
:$ find ~ -type f 2>; /dev/null/home/seth/actual.file/home/seth/zzz.file使用重定向
在 Bash 中,重定向是转移数据的有效方法。你可能不会频繁使用重定向,但是学会如何使用它,能帮你在打开文件、复制粘贴数据这类需要移动鼠标、大量按键操作上,节省很多不必要的时间。不要做如此浪费时间的事情。使用重定向,好好享受生活。
以上是“如何通过重定向在Linux终端任意读写数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
新闻名称:如何通过重定向在Linux终端任意读写数据
文章转载:http://pwwzsj.com/article/ppogcs.html