如何把文字導到stdin - Linux

By Erin
at 2011-03-08T15:11
at 2011-03-08T15:11
Table of Contents
sftp 的 man page 提到可以先把 sftp 的指令寫到檔案中
然後用 -b 使 sftp 執行該檔案中的指令
當 -b 後接的檔名為 - 時 表示用 stdin 當做要執行的檔案
$ cat sftp.txt
get .bashrc
$ sftp -b sftp.txt user@host
sftp> get .bashrc
Fetching /root/home/user/.bashrc to .bashrc
$ sftp -b - user@host
get .bashrc => 這行是手打的(stdin)
sftp> get .bashrc
Fetching /root/home/user/.bashrc to .bashrc
exit
sftp> exit
--
我想問的是
如何把 'get .bashrc' 寫在 'sftp -b - ...' 的指令中
而不需準備一個 sftp.txt 或是從 stdin 手動輸入 'get .bashrc'
我猜指令大概長這樣(這是舉例 實際上沒用):
sftp -b - user@host << 'get .bashrc'
(然後弄成alias 之後要呼叫就方便多了)
上網查很久 但實在是找不到做法
希望有人可以教一下 十分感謝~
其實我想過用scp
但 scp 傳一次檔案都要登入 server 一次
傳多少次就要登入多少次server
比起 sftp 來說會花更多時間 (雖然就單次傳檔來說 scp 較快)
我知道可以用 wildcard 或把檔案 tar 起來再傳
但檔名不太規則 wildcard不適用
加上 tar 檔案也是要花不少時間的
所以可以的話還是希望用sftp
wget就不用考慮了 因為檔案不是放在網路空間
--
然後用 -b 使 sftp 執行該檔案中的指令
當 -b 後接的檔名為 - 時 表示用 stdin 當做要執行的檔案
$ cat sftp.txt
get .bashrc
$ sftp -b sftp.txt user@host
sftp> get .bashrc
Fetching /root/home/user/.bashrc to .bashrc
$ sftp -b - user@host
get .bashrc => 這行是手打的(stdin)
sftp> get .bashrc
Fetching /root/home/user/.bashrc to .bashrc
exit
sftp> exit
--
我想問的是
如何把 'get .bashrc' 寫在 'sftp -b - ...' 的指令中
而不需準備一個 sftp.txt 或是從 stdin 手動輸入 'get .bashrc'
我猜指令大概長這樣(這是舉例 實際上沒用):
sftp -b - user@host << 'get .bashrc'
(然後弄成alias 之後要呼叫就方便多了)
上網查很久 但實在是找不到做法
希望有人可以教一下 十分感謝~
其實我想過用scp
但 scp 傳一次檔案都要登入 server 一次
傳多少次就要登入多少次server
比起 sftp 來說會花更多時間 (雖然就單次傳檔來說 scp 較快)
我知道可以用 wildcard 或把檔案 tar 起來再傳
但檔名不太規則 wildcard不適用
加上 tar 檔案也是要花不少時間的
所以可以的話還是希望用sftp
wget就不用考慮了 因為檔案不是放在網路空間
--
Tags:
Linux
All Comments

By Daniel
at 2011-03-12T09:41
at 2011-03-12T09:41

By Damian
at 2011-03-14T20:42
at 2011-03-14T20:42
Related Posts
請問 Debian 可以裝 Ubuntu Unity 嗎?

By Barb Cronin
at 2011-03-08T09:48
at 2011-03-08T09:48
vlc的串流輸出問題

By Steve
at 2011-03-08T00:43
at 2011-03-08T00:43
awk 的 bug?

By Noah
at 2011-03-07T22:50
at 2011-03-07T22:50
awk 的 bug?

By David
at 2011-03-07T22:10
at 2011-03-07T22:10
linux上的MSN 對話紀錄

By Ethan
at 2011-03-07T21:25
at 2011-03-07T21:25