日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linuxpython重定向_linux命令重定向、、 1、 2、 1、 2、

發布時間:2024/10/8 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linuxpython重定向_linux命令重定向、、 1、 2、 1、 2、 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

重定向命令其實用得不少吧,只是重來都沒有仔細看過,這波正好又用到 又有空總結一波。

先看>和>>:

他們倆其實唯一的區別就是>是重定向到一個文件,>>是追加內容到文件。兩個命令都是如果文件不存在則創建文件。舉個例子來看看:

(thrift_rpc)piperck? Desktop ? ll >> 123.txt

(thrift_rpc)piperck? Desktop ? ll| grep 123.txt-rw-r--r-- 1 piperck staff 2.8K Dec 25 00:24 123.txt

可以看到可以將ll的輸出 重定向到123.txt中, >也是同樣的效果。只是如果使用>執行重定向的位置沒有這個文件

(thrift_rpc)piperck? Desktop ? ls > /poweqpikp/123zsh: no suchfile or directory: /poweqpikp/123(thrift_rpc)piperck? Desktop ?ls >> /poweqpikp/123zsh: no suchfile or directory: /poweqpikp/123(thrift_rpc)piperck? Desktop ?ls > 123(thrift_rpc)piperck? Desktop ?ls >> 1234

但是如果你重定向的是沒有的文件夾里面的文件,那么文件夾他是不會幫你創建的,所以會報出錯誤,這點要注意。

然后是?1>、 2>、 1>>、 2>>的使用,

當我們需要把一個文件正確的輸出,和錯誤的輸出分開保存的時候就能用到他們啦。讓我用一個簡單的python腳本來做一個實驗

python腳本如下

#coding: utf-8

if __name__ == '__main__':print 'gogogog'int('qiowjeioqwjeo')

該腳本會正確執打印gogogog 然后 報出下面強轉的錯誤。

(thrift_rpc)piperck? py_pra ? python pp.py 1> right.txt 2>wrong.txt

(thrift_rpc)piperck? py_pra ? ls

NS8A_client gevent pp.py starcraft2

baidu_phoneassist laplace_pra right.txt wrong.txt

(thrift_rpc)piperck? py_pra ? cat right.txt

gogogog

(thrift_rpc)piperck? py_pra ? cat wrong.txt

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'

可以看到,正確的輸出被保存進了right.txt 而錯誤的輸出被重定向到了wrong.txt 。

那么如果我們不區分1>2>這樣的重定向規則,運行結果會被保存成什么樣子呢?

(thrift_rpc)piperck? py_pra ? python pp.py >pp.txt

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'(thrift_rpc)piperck? py_pra ? cat pp.txt

gogogog

可以看到只保存了正確的結果,錯誤的信息被打印到標準輸出上面。

那如果我們想讓錯誤和正確的結果都被重定向到同一個文件又應該怎么做呢。

(thrift_rpc)piperck? py_pra ? python pp.py 1> ppp.txt 2>&1(thrift_rpc)piperck? py_pra ? cat ppp.txt

gogogog

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'

可以看到,我們將錯誤也重定向到和1相同的文件 就實現了這個需求。

同理1>> 2>>其實也就是追加數據到文件中,和前面介紹的> >>沒有什么不同,需要提到的一點是,如果我們想將錯誤的和正確的信息重定向追加到同一個文件應該怎么做呢?你可能會想到2>>&1。。。然而現實是,并沒有這個語法。

然而我們卻可以使用1>>pp.txt 2>&1的語法實現這個功能

(thrift_rpc)piperck? py_pra ? python pp.py 1>> pp.txt 2>&1(thrift_rpc)piperck? py_pra ? cat pp.txt

gogogog

gogogog

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'gogogog

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'

可見看似1> 1>> 2> 2>>是相一一對應的,但是其實不是,他們可以混用,比方說正確的結果想追加,錯誤的結果我想覆蓋。

(thrift_rpc)piperck? py_pra ? python pp.py 1>>right.txt 2>wrong.txt

(thrift_rpc)piperck? py_pra ? cat right.txt

gogogog

(thrift_rpc)piperck? py_pra ? cat wrong.txt

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'(thrift_rpc)piperck? py_pra ? python pp.py1>>right.txt 2>wrong.txt(thrift_rpc)piperck? py_pra ? cat right.txt

gogogog

gogogog

(thrift_rpc)piperck? py_pra ? cat wrong.txt

Traceback (most recent call last):

File"pp.py", line 6, in int('qiowjeioqwjeo')

ValueError: invalid literalfor int() with base 10: 'qiowjeioqwjeo'

類似這種組合混用的情況,相對來說也不少見。也可以看出重定向標識的靈活性。

那么如果我們想保存正確的結果,錯誤的結果直接丟向垃圾站,既不保存為文件,也不在標準輸出打印又該怎么做呢?

(thrift_rpc)piperck? py_pra ? python pp.py 1>>right.txt 2>/dev/null

(thrift_rpc)piperck? py_pra ? cat right.txt

gogogog

gogogog

gogogog

直接將錯誤輸出重定向到/dev/null 就好了,他就像一個無底洞,丟進去的東西就不見了。

那么

(thrift_rpc)piperck? py_pra ? vi hh

(thrift_rpc)piperck? py_pra ?>> txt.py

(thrift_rpc)piperck? py_pra ? cat txt.py

qwejqwoijeoq

靈活使用重定向標識符 將極大方便我們日常對系統的操作,和靈活控制腳本的運作,所以一定要掌握喲!

Reference:

http://blog.chinaunix.net/uid-298599-id-2443108.html ??Linux - 命令重定向

總結

以上是生活随笔為你收集整理的linuxpython重定向_linux命令重定向、、 1、 2、 1、 2、的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。