所以我瞭解在bash管道和我發現這個簡練的描述:管道打印到ls在Bash?
UNIX管道連接STDOUT(標準輸出)的 第一個進程文件描述符的所述STDIN(標準輸入)第二。 然後發生的是,當第一個進程寫入其STDOUT時,第二個進程可以立即讀取(從STDIN) 輸出。
鑑於這種認識,讓我們連接的printf
標準輸出到ls
標準輸入。爲了簡單起見,打印父目錄(printf ..
)。
~/Desktop/pipes$ mkdir sub
~/Desktop/pipes$ ls
sub
~/Desktop/pipes$ cd sub
(no files)
~/Desktop/pipes/sub$ printf .. | ls
(no files)
~/Desktop/pipes/sub$
我想要做的:ls ..
但似乎所有我得到的是ls
。這是爲什麼?我怎麼能ls
父目錄使用管道?我誤解管道嗎?
'ls'不從標準輸入讀取。所以,'ls ..'是在這裏得到你想要的東西的方法。 「男人是你的朋友」。 – codeforester
那麼這僅僅是'ls'的一個屬性?我對管道的理解是否正確? 'ls ..'沒有采用STDIN的'..'參數嗎? –
你需要'ls'使用'xargs' @KennethWorden – Inian