linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格?
問(wèn)題描述
我是Linux新手,我想將文件從遠(yuǎn)程復(fù)制到本地系統(tǒng)…現(xiàn)在,我在Linux系統(tǒng)中使用scp命令。當(dāng)我嘗試將其復(fù)制時(shí),我有一些文件夾或文件名帶有空格文件,它顯示錯(cuò)誤消息:“沒(méi)有這樣的文件或目錄”
我試過(guò)了:
scp ael5105@192.168.0.200:'/home/5105/test/gg/Untitled Folder/a/qy.jpg' /var/www/try/
我在網(wǎng)上看到了一些參考資料,但我不太了解,有人可以幫忙嗎?
復(fù)制期間如何在文件名或目錄名中轉(zhuǎn)義空格…
最佳思路
基本上,您需要對(duì)它進(jìn)行兩次轉(zhuǎn)義,因?yàn)樗窃诒镜厝缓笤谶h(yuǎn)端進(jìn)行轉(zhuǎn)義。
您可以選擇幾種方式(bash中):
scp user@example.com:"'web/tmp/Master File 18 10 13.xls'" .
scp user@example.com:"web/tmp/Master\ File\ 18\ 10\ 13.xls" .
scp user@example.com:web/tmp/Master\\\ File\\\ 18\\\ 10\\\ 13.xls .
次佳思路
作品
scp localhost:"f/a\ b\ c" .
scp localhost:'f/a\ b\ c' .
不起作用
scp localhost:'f/a b c' .
原因是在路徑傳遞給scp命令之前,shell會(huì)解釋字符串。因此,當(dāng)?shù)竭_(dá)遠(yuǎn)程服務(wù)器時(shí),遠(yuǎn)程服務(wù)器正在尋找?guī)в形崔D(zhuǎn)義引號(hào)的字符串,但失敗
要查看實(shí)際情況,請(qǐng)使用-vx選項(xiàng)啟動(dòng) shell 程序,即bash -vx,它將在運(yùn)行命令時(shí)顯示命令的內(nèi)插版本。
第三種思路
您也可以執(zhí)行以下操作:
scp foo@bar:"\"apath/with spaces in it/\""
第一級(jí)報(bào)價(jià)將由scp解釋,然后第二級(jí)報(bào)價(jià)將保留空格。
第四種思路
使用3個(gè)反斜杠轉(zhuǎn)義目錄名稱中的空格:
scp user@host:/path/to/directory\\\ with\\\ spaces/file ~/Downloads
應(yīng)該從名為directory with spaces的遠(yuǎn)程目錄中將file復(fù)制到您的Downloads目錄。
第五種思路
我很難將其用于包含空格的文件名的shell變量。由于某些原因使用
file="foo bar/baz"
scp user@example.com:"'$file'"
就像@Adrian的回答似乎失敗了。
事實(shí)證明,最有效的方法是使用參數(shù)擴(kuò)展將反斜杠添加到空格之前,如下所示。
file="foo bar/baz"
file="${file//\ /\\\ }"
scp user@example.com:"$file"
參考資料
總結(jié)
以上是生活随笔為你收集整理的linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html中css二级联动,html二级联
- 下一篇: 德阳开车到迪庆藏族自治州渣日岩画费用