惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
雷峰网
雷峰网
Recent Announcements
Recent Announcements
月光博客
月光博客
G
Google Developers Blog
腾讯CDC
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
T
Tenable Blog
云风的 BLOG
云风的 BLOG
W
WeLiveSecurity
博客园 - 【当耐特】
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
P
Privacy International News Feed
MyScale Blog
MyScale Blog
K
Kaspersky official blog
T
The Blog of Author Tim Ferriss
Attack and Defense Labs
Attack and Defense Labs
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
aimingoo的专栏
aimingoo的专栏
I
Intezer
Vercel News
Vercel News
小众软件
小众软件
Simon Willison's Weblog
Simon Willison's Weblog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
Latest news
Latest news
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
S
Security Affairs
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
博客园 - Franky
C
Cyber Attacks, Cyber Crime and Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
美团技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Security @ Cisco Blogs
L
LINUX DO - 热门话题
Know Your Adversary
Know Your Adversary
Project Zero
Project Zero
D
Docker
L
Lohrmann on Cybersecurity
F
Full Disclosure

毛俊的博客

离线编译并安装 Python 3.7 - 毛俊的博客 对终身会员软件停止服务的思考总结 - 毛俊的博客 Vue3项目搭建的4种方式 - 毛俊的博客 Kubernetes及其生态介绍和使用 - 毛俊的博客 MPV播放器默认快捷键 - 毛俊的博客 Markdown导出带大纲目录的Html - 毛俊的博客 Windows设置操作URI指令 - 毛俊的博客 极简生活可以尝试的实践 - 毛俊的博客 《不持有的生活》读书摘录 - 毛俊的博客 艾宾浩斯遗忘曲线复习计划表 - 毛俊的博客 Google搜索技巧 - 毛俊的博客 GitHub搜索技巧 - 毛俊的博客 运动类影视剧集清单 - 毛俊的博客 常用软件清单 - 毛俊的博客 COCA 20000词根词汇练习 - 毛俊的博客 少吃或不吃的食物 - 毛俊的博客 美军两分钟睡眠法 - 毛俊的博客 健康食物清单 - 毛俊的博客 Git客户端工具GitUi安装及使用 - 毛俊的博客
Shell中的错误重定向和标准重定向 - 毛俊的博客
毛 俊 · 2024-07-08 · via 毛俊的博客

错误重定向和标准重定向

在Unix/Linux系统中,错误重定向和标准输出重定向的语法如下:

  1. 标准输出重定向(将标准输出保存到文件):

    1
    command > file

    这将 command 的标准输出重定向到名为 file 的文件中。如果文件不存在,它将被创建;如果文件已经存在,它将被覆盖。

  2. 标准错误重定向(将标准错误保存到文件):

    1
    command 2> file

    这将 command 的标准错误重定向到名为 file 的文件中。

  3. 同时重定向标准输出和标准错误到同一个文件:

    1
    command > file 2>&1

    这将 command 的标准输出和标准错误都重定向到名为 file 的文件中。2>&1 表示将标准错误重定向到与标准输出相同的地方。

  4. 在标准输出和标准错误都附加到同一个文件(不会覆盖):

    1
    command >> file 2>&1

    这将 command 的标准输出和标准错误都附加到名为 file 的文件中,而不覆盖文件内容。

  5. 丢弃标准输出或标准错误:

    • 丢弃标准输出:

      1
      command > /dev/null
    • 丢弃标准错误:

      1
      command 2> /dev/null
  6. 同时丢弃标准错误和标准输出,使用如下的语法:

1
command > /dev/null 2>&1

这将把 command 的标准输出(1)重定向到 /dev/null,同时将标准错误(2)重定向到与标准输出相同的位置。结果是标准输出和标准错误都将不会在终端显示,也不会保存到文件中。

command > /dev/null 2>&1 和&>/dev/null的区别

command > /dev/null 2>&1&>/dev/null 都可以用来将标准输出和标准错误重定向到 /dev/null,从而达到静默化输出的目的。

  1. command > /dev/null 2>&1 使用两个不同的重定向操作符,首先将标准输出重定向到 /dev/null,然后再将标准错误重定向到与标准输出相同的位置。
  2. &>/dev/null 使用一个单一的重定向操作符,将标准输出和标准错误一起重定向到 /dev/null

从功能上来说,两者是等效的,它们都可以实现相同的效果。

但在可读性方面,&>/dev/null 更加简洁,因为它一次性将标准输出和标准错误都重定向到相同的地方,而不需要多个操作符。

(完)