您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么解決zsh使用scp命令時*通配符出現no matches的錯誤”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決zsh使用scp命令時*通配符出現no matches的錯誤”吧!
MacOS升級后zsh成了默認的shell,順應潮流開始了zsh的使用之旅。
今天使用scp
復制遠程多個文件時出現如下錯誤:
# 復制某個目錄下的所有配置文件(*.conf) scp host:/xxxx/*.conf . # 錯誤如下錯誤 # zsh: no matches found: host:/xxxx/*.conf
很肯定這條命令語句在bash中能正常如期工作,出現這樣的問題應該是zsh的鍋。作為資深linux用戶,可以很快看出了問題所在:zsh試圖將*通配符展開,在本地未找到對應文件,于是出現“no matches”的錯誤。
經過個人嘗試以及網上搜索,有兩種解決方案:
不要讓zsh將*號展開;具體做法有:
將*號部分用引號引起來,單雙引號都所無謂。例如:scp "host:/xxxx/*.conf" .
,或者scp 'host:/xxxx/*.conf' .
。也可以只引用路徑部分,例如:scp host:'/xxxx/*.conf' .
;
用反斜桿阻止zsh轉義:scp host:/xxxx/\*.conf .
。
設置nonomatch選項,讓zsh匹配失敗時不報錯并使用原本內容。具體做法是:setopt nonomatch
,然后再使用scp
命令。推薦的做法是寫入到.zshrc文件中,讓以后的使用中自動生效。
zsh使用scp命令時*通配符無法使用
感謝各位的閱讀,以上就是“怎么解決zsh使用scp命令時*通配符出現no matches的錯誤”的內容了,經過本文的學習后,相信大家對怎么解決zsh使用scp命令時*通配符出現no matches的錯誤這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。