~ 家目錄問題 - Linux

Table of Contents

大家好,想跟大家請教下~的問題(或許是指令的問題?)

我有個檔案的絕對路徑是 /home/me/doc/hahaha.voc

我想替換檔案中的內文所以我下了

sed 's///g' ~/doc/hahaha.voc (程式沒問題)

後來發現我有100個.voc檔都需要修改

所以我把100個檔做成一個清單(~/doc/list),如下

~/doc/xxx.voc
~/doc/ooo.voc
~/doc/kkk.voc
~/doc/www.voc
~/doc/ttt.voc
etc...


cat ./list |xargs -i sed 's///g' {}

結果系統跟我說
~/doc/xxx.voc not a file or directory
~/doc/ooo.voc not a file or directory
~/doc/kkk.voc --
~/doc/www.voc --
~/doc/ttt.voc --

後來我把list中的所有路徑換成絕對路徑,程式就可以跑了

想請問下這是為什麼呢?


cat ./list |xargs -i sed 's///g' {}
的寫法,不是會拆成以下指令嗎?

sed 's///g' ~/doc/kkk.voc
sed 's///g' ~/doc/ooo.voc
sed 's///g' ~/doc/xxx.voc
etc...

煩請提點,謝謝Orz

Dan







--

不過是人

http://www.facebook.com/twaiting

--

All Comments

Elvira avatarElvira2015-07-10
~是shell的expension, xargs不認得
Delia avatarDelia2015-07-14
在shell上打~的時候,他會偷偷幫你換成家目錄位置
所以事實上真的傳給程式的是家目錄的位置,不是~