file 2>1 這里的 ,表示重定向的目標(biāo)不是一個(gè) 文件 ,而是一個(gè) 文件描述符 ,內(nèi)置的文件描述符如下 1 => stdout2 => stderr0 => stdin 換言之? 2>1 ?代表將 stderr 重定向到當(dāng)前路徑下文件名為 1 的 regular file 中,而 2>>file 是一種特殊的用法,也可以寫成 >1 此處 視作整體,分開沒有單獨(dú)的含義 順序問題: find /etc -name .bashrc > list 2>1 > list 這個(gè)是從左到右有順序的 第一種 xxx > list 2>1 > list 先將要輸出到 stderr 的內(nèi)容重定向到 stdout ,此時(shí)會(huì)產(chǎn)" />

18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全面掌握Linux重定向技巧:讓命令行操作效率翻倍的秘密

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 2025-01-08 10:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

#1 linux輸出重定向

$ command > file 2>&1
$ command >> file 2>&1

這里的&沒有固定的意思

放在>后面的&,表示重定向的目標(biāo)不是一個(gè)文件,而是一個(gè)文件描述符,內(nèi)置的文件描述符如下

1 => stdout
2 => stderr
0 => stdin

換言之2>1代表將stderr重定向到當(dāng)前路徑下文件名為1regular file中,而2>&1代表將stderr重定向到文件描述符1的文件(即/dev/stdout)中,這個(gè)文件就是stdoutfile system中的映射

&>file是一種特殊的用法,也可以寫成>&file,二者的意思完全相同,都等價(jià)于

>file 2>&1

此處&>或者>&視作整體,分開沒有單獨(dú)的含義

順序問題:

find /etc -name .bashrc > list 2>&1
# 為什么不能調(diào)下順序,比如這樣
find /etc -name .bashrc 2>&1 > list

這個(gè)是從左到右有順序的

第一種

xxx > list 2>&1

先將要輸出到stdout的內(nèi)容重定向到文件,此時(shí)文件list就是這個(gè)程序的stdout,再將stderr重定向到stdout,也就是文件list

第二種

xxx 2>&1 > list

先將要輸出到stderr的內(nèi)容重定向到stdout,此時(shí)會(huì)產(chǎn)生一個(gè)stdout的拷貝,作為程序的stderr,而程序原本要輸出到stdout的內(nèi)容,依然是對(duì)接在stdout原身上的,因此第二步重定向stdout,對(duì)stdout的拷貝不產(chǎn)生任何影響

#2 輸入重定向

command1 < file1

#3 dev/null

如果希望執(zhí)行某個(gè)命令,但又不希望在屏幕上顯示輸出結(jié)果,那么可以將輸出重定向到 /dev/null:

command > /dev/null

/dev/null 是一個(gè)特殊的文件,寫入到它的內(nèi)容都會(huì)被丟棄;如果嘗試從該文件讀取內(nèi)容,那么什么也讀不到。但是 /dev/null 文件非常有用,將命令的輸出重定向到它,會(huì)起到"禁止輸出"的效果。

如果希望屏蔽 stdout 和 stderr,可以這樣寫:

command > /dev/null 2>&1

#4 重定向深入

一般情況下,每個(gè) Unix/Linux 命令運(yùn)行時(shí)都會(huì)打開三個(gè)文件:

標(biāo)準(zhǔn)輸入文件(stdin):stdin的文件描述符為0,Unix程序默認(rèn)從stdin讀取數(shù)據(jù)。

標(biāo)準(zhǔn)輸出文件(stdout):stdout 的文件描述符為1,Unix程序默認(rèn)向stdout輸出數(shù)據(jù)。

標(biāo)準(zhǔn)錯(cuò)誤文件(stderr):stderr的文件描述符為2,Unix程序會(huì)向stderr流中寫入錯(cuò)誤信息。

默認(rèn)情況下,command > file 將 stdout 重定向到 file,command < file 將stdin 重定向到 file。

如果希望 stderr 重定向到 file,可以這樣寫

command 2 > file

如果希望 stderr 追加到 file 文件末尾,可以這樣寫

command 2 >> file

如果希望將 stdout 和 stderr 合并后重定向到 file,可以這樣寫:

$ command > file 2>&1
或者
$ command >> file 2>&1

如果希望對(duì) stdin 和 stdout 都重定向,可以這樣寫:

$ command < file1 >file2

command 命令將 stdin 重定向到 file1,將 stdout 重定向到 file2。

注意:為什么需要將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出,因?yàn)闃?biāo)準(zhǔn)錯(cuò)誤沒有緩沖區(qū),而stdout有。

https://www.runoob.com/linux/linux-shell-io-redirections.html

命令 說明
command > file 將輸出重定向到 file。
command < file 將輸入重定向到 file。
command >> file 將輸出以追加的方式重定向到 file。
n > file 將文件描述符為 n 的文件重定向到 file。
n >> file 將文件描述符為 n 的文件以追加的方式重定向到 file。
n >& m 將輸出文件 m 和 n 合并。
n <& m 將輸入文件 m 和 n 合并。
<< tag 將開始標(biāo)記 tag 和結(jié)束標(biāo)記 tag 之間的內(nèi)容作為輸入。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11581

    瀏覽量

    217166
  • 命令行
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    10678

原文標(biāo)題:全面掌握Linux重定向技巧:讓命令行操作效率翻倍的秘密

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    推薦5個(gè)測試效率翻倍的MCP

    推薦5個(gè)測試效率翻倍的MCP
    的頭像 發(fā)表于 09-19 10:02 ?339次閱讀
    推薦5個(gè)<b class='flag-5'>讓</b>測試<b class='flag-5'>效率</b><b class='flag-5'>翻倍</b>的MCP

    遠(yuǎn)程命令執(zhí)行:IT 運(yùn)維效率翻倍新方式

    。SplashtopAEM(自動(dòng)端點(diǎn)管理)解決方案內(nèi)置的遠(yuǎn)程命令提示符功能,允許IT管理員無需啟動(dòng)完整的遠(yuǎn)程會(huì)話,即可輕松在遠(yuǎn)程設(shè)備上執(zhí)行命令行指令。該功能同時(shí)兼容W
    的頭像 發(fā)表于 09-04 17:15 ?728次閱讀
    遠(yuǎn)程<b class='flag-5'>命令</b>執(zhí)行:IT 運(yùn)維<b class='flag-5'>效率</b><b class='flag-5'>翻倍</b>新方式

    解析K8S實(shí)用命令

    前言: 作為運(yùn)維工程師,掌握 Kubernetes 命令行工具是日常工作的核心技能。本文將深入解析 K8S 最實(shí)用的命令,從基礎(chǔ)操作到高級(jí)技巧,助你成為容器化集群管理專家。
    的頭像 發(fā)表于 07-24 14:07 ?408次閱讀

    一文掌握Linux命令

    作為一名運(yùn)維工程師,熟練掌握Linux命令是基本功中的基本功。無論是日常工作中的系統(tǒng)維護(hù),還是面試時(shí)的技術(shù)考核,Linux命令都是繞不開的核
    的頭像 發(fā)表于 07-22 15:23 ?350次閱讀

    USB串行配置實(shí)用程序是否有可用的命令行版本?

    USB串行配置實(shí)用程序是否有可用的命令行版本?
    發(fā)表于 07-22 08:09

    淺談wsl --update` 命令行選項(xiàng)無效的解決方案

    PS C:\Users\Administrator> wsl --update >> 命令行選項(xiàng)無效: --update
    的頭像 發(fā)表于 06-27 10:28 ?5335次閱讀

    aurix development studio無法用命令行編譯工程的原因?

    aurix development studio無法用命令行編譯工程
    發(fā)表于 04-18 06:50

    請(qǐng)問如何通過S32K312命令行構(gòu)建代碼?

    現(xiàn)在我們已經(jīng)通過 S32DS3.5 IDE 開發(fā)了固件,它也可以工作了。 最近,我們收到了通過命令行構(gòu)建代碼的要求,并且 我從 S32DS 幫助內(nèi)容中讀取了相關(guān)文檔,但這種情況會(huì)發(fā)生 有關(guān) JAVA
    發(fā)表于 04-09 07:48

    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!

    在本教程中,我將討論Shell腳本的基礎(chǔ)知識(shí)、它們的用途以及如何在RaspberryPi上編寫和運(yùn)行Shell腳本。什么是Shell腳本?Shell腳本可以你自動(dòng)化幾乎所有在Linux命令行上可以
    的頭像 發(fā)表于 03-25 09:28 ?763次閱讀
    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!

    Linux常用命令行總結(jié)

    學(xué)習(xí)了一段時(shí)間的linux之后,開始著手基本命令的學(xué)習(xí),這里主要記錄一些學(xué)習(xí)過程中重要的知識(shí)點(diǎn)供以后查閱。
    的頭像 發(fā)表于 03-03 10:40 ?733次閱讀
    <b class='flag-5'>Linux</b>常用<b class='flag-5'>命令行</b>總結(jié)

    Linux ip命令常用操作

    Linux?ip命令常用操作Linux系統(tǒng)中,ip命令是用于管理網(wǎng)絡(luò)接口和路由的強(qiáng)大工具。相比于舊的?ifconfig
    的頭像 發(fā)表于 02-19 10:23 ?966次閱讀

    curl wget bond:深入解析命令行工具的差異與應(yīng)用場景

    curl curl 是一個(gè)用于與服務(wù)器進(jìn)行數(shù)據(jù)傳輸?shù)?b class='flag-5'>命令行工具。它支持多種協(xié)議,包括 HTTP、HTTPS、 FTP 等。 基本用法 獲取網(wǎng)頁內(nèi)容: curl http://example.com
    的頭像 發(fā)表于 01-24 09:20 ?686次閱讀

    全志T113-S3板載Linux系統(tǒng)信息查詢

    前言:作為普通Linux用戶或軟件開發(fā)人員,查看Linux系統(tǒng)中系統(tǒng)信息是一項(xiàng)基本且重要的操作。這可以提供關(guān)鍵的系統(tǒng)配置和狀態(tài)信息,幫助用戶和管理員對(duì)系統(tǒng)進(jìn)行監(jiān)控、診斷和優(yōu)化。Linux
    的頭像 發(fā)表于 11-22 01:07 ?1427次閱讀
    全志T113-S3板載<b class='flag-5'>Linux</b>系統(tǒng)信息查詢

    圖形用戶界面與命令行接口的比較

    界面(GUI) : GUI是一種用戶界面,允許用戶通過圖形圖標(biāo)和視覺指示器與電子設(shè)備進(jìn)行交互。 它通常包括窗口、按鈕、圖標(biāo)和菜單等元素,用戶可以通過鼠標(biāo)或觸摸屏進(jìn)行操作命令行接口(CLI) : CLI是一種用戶界面,用戶通過輸入文本
    的頭像 發(fā)表于 11-12 14:38 ?1676次閱讀

    Mobaxterm 的命令行使用方法

    的遠(yuǎn)程桌面協(xié)議(如RDP和VNC),以及文件傳輸協(xié)議(如FTP和SFTP)。本文將詳細(xì)介紹如何使用Mobaxterm的命令行功能。 2. 安裝 Mobaxterm 在開始之前,確保你已經(jīng)安裝
    的頭像 發(fā)表于 11-11 09:08 ?7626次閱讀