首页 > 其他分享 >io重定向

io重定向

时间:2024-08-31 18:47:46浏览次数:9  
标签:输出 重定向 文件 标准 ls io txt

标准 I/O 流

每个进程(包括命令)在运行时都有三个标准的 I/O 流:

  1. 标准输入(Standard Input,stdin:默认从键盘获取输入。文件描述符为 0
  2. 标准输出(Standard Output,stdout:默认输出到屏幕。文件描述符为 1
  3. 标准错误(Standard Error,stderr:默认输出错误信息到屏幕。文件描述符为 2
  4. 索引对应文件

重定向操作

输出重定向 > >> &> / >&
输入重定向 <

覆盖输出 >

默认标准输出 如果是标准错误就加 2
将命令的输出写入文件,若文件存在,就覆盖

ls > output.txt
cat 1.txt > /dev/null 禁止输出的作用 传入数据流
cat 1.txt > /dev/null 2>&1 数据流流向的通道1

  • 合并多个文件
    cat 1.txt 2.txt > 3.txt
    将这俩合并到新的3.txt文件里面,跟cp复制命令一样
    cat 1.txt > 1.txt.bak

追加输出 >>

将命令的输出追加到文件末尾,若文件不存在,就创建这个文件

echo "New Line" >> output.txt

输入重定向 <

将文件的内容重定向为命令的输入

cat < 1.txt

重定向错误输出 2>

将错误输出写入文件,若文件存在,则覆盖文件

ls /nonexistent_directory 2> 1.txt
将ls命令的错误输出信息保存到 1.txt中

追加错误输出 2>>

将错误输出追加到文件末尾,若文件不存在,则创建该文件

ls /nonexistent_directory 2>> 1.txt
这会将 ls 命令的错误信息追加到 error.txt 文件末尾

组合重定向

1.合并标准输出和错误输出 2>&1

  • cat 1.txt >> /dev/null 2>&1
    /dev/null 空文件起到禁止输出的作用
    2> :输出 错误
    &1 :通道1

  • 将标准输出和标准错误同时覆盖到文件

ls /valid_directory /nonexistent_directory > output.txt 2>&1
这会将 ls 命令的输出和错误信息同时保存到 output.txt 文件中

  • 将标准输出和标准错误同时追加到文件

command >> file.txt 2>&1
这会将 command 的输出和错误信息追加到 file.txt 文件末尾

2.将标准输出和错误分开重定向

可以将标准输出和标准错误分别重定向到不同的文件

ls /valid_directory /nonexistent_directory > output.txt 2> error.txt
ls 命令的标准输出保存到 output.txt,错误输出保存到 error.txt

echo 标准输出

  • echo 'abc' > ./a.txt
    在当前的目录下创建a.txt,并输出
    ![[Pasted image 20240824094527.png]]
    单独输入echo 代表换行
    ![[Pasted image 20240824094706.png]]
    echo -n 取消换行
    echo -e 使转义字符生效
    echo -e "a/tcd" 双引号加
    \转义字符 占用1字节 转义特殊意义的字符

接下来看这个
[[进程通信]]

标签:输出,重定向,文件,标准,ls,io,txt
From: https://www.cnblogs.com/bubble-o0oO/p/18386401

相关文章

  • Goolge earth studio 进阶4——路径修改与平滑
    如果我们希望在大约中途时获得更多的城市鸟瞰视角。可以将相机拖动到这里并创建一个新的关键帧。camera_target_clip_7EarthStudio会自动平滑我们的路径,所以当我们通过这个关键帧时,不是一个生硬的角度,而是一个平滑的曲线。camera_target_clip_8路径上有贝塞尔控制......
  • MotionPlus 安装指南
    介绍MotionPlus是一款用于监控摄像头的视频信号,并检测运动的应用程序,是对原有Motion软件的升级版本。它支持多种设备,如网络摄像头、V4L2网络摄像头和视频采集卡等。MotionPlus提供多种功能,包括录制视频、保存图片、实时视频流观看、调用脚本、日志记录、以及运动检测等功能。安......
  • IO流:缓冲流
    字节缓冲流简介缓冲流是对原原始流进行包装,提高原始流读写数据的性能。提供8KB输入输出缓冲区。 用法publicclassBufferedInputStreamTest1{publicstaticvoidmain(String[]args){try{//1.定义一个字节缓冲输入流包裹原始的字节输入流......
  • Clion 使用
    1.使用CLion进行ROS开发安装基本的ROS环境ROS环境的安装请参考安装ROS。安装CLion下载CLionLinux的下载地址如下:CLion解压CLion将下载的CLion复制到/opt目录下(你可以解压到适合自己的文件夹,只要保证后续使用的路径一致即可),然后在这个目录下使用终端将其解压,命令如......
  • spark的SparkSubmit类关于Configuration的资源文件加载
    在阅读 SparkSubmit 源代码时,重点关注 Configuration 的资源文件的加载情况,默认通过 newConfiguration() 构造方法创建时,只会加载 core-default.xml 和core-site.xml文件,但是 SparkSubmit 中打印 Configuration 时,发现还会加载 yarn-site.xml,SparkSubmit 代码中没......
  • 2024年8月31日 Python - asycnio
    参考asyncio---异步I/O—Python3.12.4文档asyncio视频教程-bilibili6.2.9. yield表达式—Python3.12.4文档PEP380:委托给子生成器的语法yield介绍yieldx生成一个内容yieldfrom委托给子生成器,yieldfromiterable本质上只是foritemini......
  • python并发与并行(十一) ———— 让asyncio的事件循环保持畅通,以便进一步提升程序的响
    前一篇blog说明了怎样把采用线程所实现的项目逐步迁移到asyncio方案上面。迁移后的run_tasks协程,可以将多份输入文件通过tail_async协程正确地合并成一份输出文件。importasyncio#OnWindows,aProactorEventLoopcan'tbecreatedwithin#threadsbecauseittriestoregi......
  • python并发与并行(十) ———— 结合线程与协程,将代码顺利迁移到asyncio
    在前一篇中,我们用asyncio模块把通过线程来执行阻塞式I/O的TCP服务器迁移到了协程方案上面。当时我们一下子就完成了迁移,而没有分成多个步骤,这对于大型的项目来说,并不常见。如果项目比较大,那通常需要一点一点地迁移,也就是要边改边测,确保迁移过去的这一部分代码的效果跟原来相同。为......
  • python并发与并行(九) ———— 用asyncio改写通过线程实现的IO
    知道了协程的好处之后,我们可能就想把现有项目之中的代码全都改用协程来写,于是有人就担心,这样修改起来,工作量会不会比较大呢?所幸Python已经将异步执行功能很好地集成到语言里面了,所以我们很容易就能把采用线程实现的阻塞式I/O操作转化为采用协程实现的异步I/O操作。在这里我们要补充......
  • STM32GPIO操作底层解析
    我们使用HAL和标准库时,常常忽略他两的底层,只知道怎么用不知其原理,其实是大忌,因为底层丢了代码的灵魂就丢了,对以后的Linux开发不利常用的指令函数:voidGPIO_WriteBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,BitActionBitVal){/*Checktheparameters*/assert_p......