Linux基础(2) 管道符、重定向与环境变量 | 您所在的位置:网站首页 › ug管道命令 › Linux基础(2) 管道符、重定向与环境变量 |
重定向分类 标准输入重定向(STDIN,文件描述符为0):把文件导入到命令中。标准输出重定向(STDOUT,文件描述符为1):正常的信息会写入文件,错误的信息打印到屏幕上错误输出重定向(STDERR,文件描述符为2):错误的信息会写入文件,正常的信息打印到屏幕上标准输出重定向 对于重定向中的标准输出模式,可以省略文件描述符1不写,但错误输出模式的文件描述符2一定要写 eg:ls -l examples.desktop > readme.txt 假设文件examples.desktop存在,则会将该文件的具体信息写入文件readme.txt中,并且文件readme.txt中的数据会被清空。(覆盖写入) eg:echo "This is a file" >> readme.txt 将字符串信息This is a file追加到文件readme.txt中。(追加写入) eg:ls -l xxxxx > readme.txt 假设文件xxxxx不存在,则屏幕会打印信息ls: 无法访问'xxxxx': 没有那个文件或目录 ,并且文件readme.txt 中的内容被清空 eg:ls -l xxxxx >> readme.txt 假设文件xxxxx不存在,则屏幕会打印信息ls: 无法访问'xxxxx': 没有那个文件或目录 ,并且没有内容追加到文件readme.txt 中。 错误输出重定向 特别注意:文件描述符和重定向符之间不能有空格 eg:ls -l examples.desktop 2> readme.txt 假设文件examples.desktop存在,则屏幕中会打印出文件examples.desktop的具体信息,并且文件readme.txt 中的内容被清空 eg:ls -l examples.desktop 2>> readme.txt 假设文件examples.desktop存在,则屏幕中会打印出文件examples.desktop的具体信息,并且没有内容追加到文件readme.txt 中。 eg:ls -l xxxxxx 2> readme.txt 假设文件xxxxxx 不存在,则错误信息会写入文件readme.txt 中,使用cat命令后会显示:ls: 无法访问'xxxxx': 没有那个文件或目录,屏幕不显示内容。 eg:ls -l xxxxxx 2>> readme.txt 假设文件xxxxxx 不存在,则错误信息会追加到文件readme.txt 中。 不区分标准输出和错误输出(正常和错误的信息均会写入文件) eg: ls -l examples.desktop &> readme.txt ls -l xxxxx &>> readme.txt使用cat命令后的输出结果为: -rw-r--r-- 1 lh lh 8980 11月 16 2021 examples.desktop ls: 无法访问'xxxxx': 没有那个文件或目录输入重定向 eg:wc -l < examples.desktop 把文件examples.desktop导入到命令wc -l,最后输入文件的行数:240 eg:wc -l examples.desktop 标准执行格式,最后输出:240 examples.desktop,即行数+文件名称 |
CopyRight 2018-2019 实验室设备网 版权所有 |