Difference between 2>&-, 2>/dev/null, |&, &>/dev/null, >/dev/null, 2>&1
For background:
- a number 1 = standard out (i.e. STDOUT)
- a number 2 = standard error (i.e. STDERR)
- if a number isn't explicitly given, then number 1 is assumed by the shell (bash)
Functions
2>&-
The general form of this one is M>&-
,
where "M" is a file descriptor number. This will close output for
whichever file descriptor is referenced, i.e. "M".
2>&1
The general form of this one is M>&N
,
where "M" & "N" are
file descriptor numbers. It combines the output of file descriptors "M" and "N" into
a single stream.
|&
This is just an abbreviation for 2>&1
.
It was added in Bash 4.
2>/dev/null
The general form of this one is M>/dev/null
,
where "M" is a file descriptor number. This will redirect the file descriptor, "M",
to /dev/null
.
>/dev/null
This is just an abbreviation for 1>/dev/null
.
It redirects file descriptor 1 (STDOUT) to /dev/null
.
&>/dev/null
This is just an abbreviation for 2>&1
>/dev/null
. It too was added in Bash 4. It redirects file descriptor 2 (STDERR) and descriptor 1 (STDOUT) to /dev/null
.
Portability to non-bash, tcsh, mksh, etc.
I've not dealt much with other shells outside of csh
and tcsh
.
My experience with those 2 compared to bash's redirection operators, is that bash is superior in that regard. See the tcsh
man page for more details.
Of the commands you asked about none are directly supported by csh/tcsh. You'd have to use different syntaxes to construct similar functions.
相關文章
- 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的區別devNull
- >/dev/null 2>&1devNull
- [shell]>/dev/null 2>&1 的作用devNull
- > /dev/null 2>&1 什麼意思?devNull
- Linux Shell 1>/dev/null 2>&1 含義LinuxdevNull
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- shell 中的>/dev/null 2>&1 是什麼鬼?devNull
- /dev/zero和/dev/null的區別devNull
- 重建/dev/null檔案devNull
- Linux下" >/dev/null 2>&1 "相關知識說明LinuxdevNull
- Shell標準輸出、標準錯誤 >/dev/null 2>&1devNull
- /dev/null解決辦法devNull
- /dev/null和標準*使用devNull
- [轉] linux下 /dev/null與/dev/zero的區別LinuxdevNull
- 關於/dev/null和/dev/zero兩個檔案裝置devNull
- Shell指令碼中的 /Dev/Null 用途指令碼devNull
- BEA dev2dev 線上dev
- 【Postopia Dev Log】Day 2dev
- 關於 /dev/null 差點直播吃鞋的一個小問題devNull
- /dev/null Read-only file system 系統無法啟動薦devNull
- ((NULL) null).printNULL();((NULL) null).printnull();Null
- npm run dev 換成 pm2NPMdev
- IS NULL和IS NOT NULLNull
- not null與check is not nullNull
- 了不起的 “filter(NULL IS NOT NULL)”FilterNull
- MySQL中is not null和!=null和<>null的區別MySqlNull
- mount.ocfs2: Transport endpoint is not connected while mounting /dev/emcpowera1Whiledev
- /dev/shmdev
- DEV dxTabbedMDIManagerdev
- 【NULL】Oracle null值介紹NullOracle
- mysql探究之null與not nullMySqlNull
- DB2的字元型欄位,NULL與空串DB2字元Null
- 辛星淺析/dev/random和/dev/urandomdevrandom
- 【Postopia Dev Blog】day 1dev
- MySQL案例-TIMESTAMP NOT NULL與NULLMySqlNull
- Oracle11gr2的PLSQL優化NULL語句OracleSQL優化Null
- DEV SIT UATdev
- Git Dev FlowGitdev