2015-04-29 91 views
1

我想了解下面的命令之間的區別。 我有兩臺機器(Server1和Server2)相同的文件,如下圖所示:Linux - Grep和進程替換

$ ls 
file1.txt 
$ ssh Server2 'ls /tmp/leo/' 
file1.txt 

預期以下作品中的命令:

$ ls /tmp/leo/ | grep -f <(ls /tmp/leo/) 
file1.txt 

但如果我把SSH的過程中替換命令,它不工作:

$ ls /tmp/leo/ | grep -f <(ssh l1558s 'ls /tmp/leo/') 

那麼使用SSH有什麼區別?

問候, 利奧

+2

請詳細說明「不起作用」 –

+0

@KarolyHorvath - 該命令不返回文件名稱,作爲第一個。 – Azize

回答

1

運行ssh-n開關,以便它不等待在標準輸入的輸入。

+0

謝謝,它的工作原理。但是你能解釋一下嗎?我正在閱讀ssh的人,但我不明白爲什麼它會在stdin上看到某些東西。 – Azize

+0

@Azize:這就是'ssh'的工作原理。它使得像'echo ls |這樣的事情成爲可能ssh機器'。但在這種情況下,您希望'grep'從標準輸入讀取,而不是'ssh'。 – choroba