[問題] xargs與cp的使用

看板Linux作者 (Ar藤)時間12年前 (2011/11/02 22:34), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
小弟有個檔files_to_cp內容如下 ~peter/largeDir/AAA ~peter/largeDir/BBB ~peter/largeDir/CCC 接著下如下指令 cat files_to_cp | xargs -i -t cp -r {} . 結果顯示 cp -r ~peter/largeDir/AAA . cp: cannot stat `~peter/largeDir/AAA': No such file or directory cp -r ~peter/largeDir/BBB . cp: cannot stat `~peter/largeDir/BBB': No such file or directory cp -r ~peter/largeDir/CCC . cp: cannot stat `~peter/largeDir/CCC': No such file or directory 複製失敗 不過我實際把 cp -r ~peter/largeDir/AAA . 這樣一行拿來執行又是正確的 請問是什麼原因呢? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.140.149 ※ 編輯: Arton0306 來自: 220.135.140.149 (11/02 22:35)

11/02 22:35, , 1F
確定是~peter/largeDir/AAA而非~/peter/largeDir/AAA ??
11/02 22:35, 1F
確定 我後來又試驗 發現是~符號的問題 如果我把~展開用絕對路徑又可以了 但是原因不明 用的是 GNU xargs version 4.1.20 ※ 編輯: Arton0306 來自: 220.135.140.149 (11/02 22:59) ※ 編輯: Arton0306 來自: 220.135.140.149 (11/02 22:59) ※ 編輯: Arton0306 來自: 220.135.140.149 (11/02 23:01)

11/02 23:24, , 2F
~符號是shell去展開的,cat沒通過shell所以符號沒變home
11/02 23:24, 2F

11/03 00:47, , 3F
原來如此!感謝!
11/03 00:47, 3F

11/03 08:45, , 4F
透過 shell 去展開 ~
11/03 08:45, 4F

11/03 08:45, , 5F
cat files_to_cp | xargs -i -t /bin/bash -c cp -r {} .
11/03 08:45, 5F

11/03 21:23, , 6F
謝謝!原來可以這樣用
11/03 21:23, 6F
文章代碼(AID): #1EiLJ_iW (Linux)