日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格?

發布時間:2025/3/8 linux 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

我是Linux新手,我想將文件從遠程復制到本地系統…現在,我在Linux系統中使用scp命令。當我嘗試將其復制時,我有一些文件夾或文件名帶有空格文件,它顯示錯誤消息:“沒有這樣的文件或目錄”

我試過了:

scp ael5105@192.168.0.200:'/home/5105/test/gg/Untitled Folder/a/qy.jpg' /var/www/try/

我在網上看到了一些參考資料,但我不太了解,有人可以幫忙嗎?

復制期間如何在文件名或目錄名中轉義空格…

最佳思路

基本上,您需要對它進行兩次轉義,因為它是在本地然后在遠端進行轉義。

您可以選擇幾種方式(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會解釋字符串。因此,當到達遠程服務器時,遠程服務器正在尋找帶有未轉義引號的字符串,但失敗

要查看實際情況,請使用-vx選項啟動 shell 程序,即bash -vx,它將在運行命令時顯示命令的內插版本。

第三種思路

您也可以執行以下操作:

scp foo@bar:"\"apath/with spaces in it/\""

第一級報價將由scp解釋,然后第二級報價將保留空格。

第四種思路

使用3個反斜杠轉義目錄名稱中的空格:

scp user@host:/path/to/directory\\\ with\\\ spaces/file ~/Downloads

應該從名為directory with spaces的遠程目錄中將file復制到您的Downloads目錄。

第五種思路

我很難將其用于包含空格的文件名的shell變量。由于某些原因使用

file="foo bar/baz"

scp user@example.com:"'$file'"

就像@Adrian的回答似乎失敗了。

事實證明,最有效的方法是使用參數擴展將反斜杠添加到空格之前,如下所示。

file="foo bar/baz"

file="${file//\ /\\\ }"

scp user@example.com:"$file"

參考資料

總結

以上是生活随笔為你收集整理的linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。