当在zsh上使用双引号时, rsync服务器自动完成不工作



我刚刚发现范围通配符大括号展开{..}从shell ({05..18}将匹配05,06…,18).

我使用zsh自动完成(tab)来导航服务器层次结构并正确转义特殊字符。

我的例子是在服务器上使用一个简单的文件层次结构:

folder1

➡️folder2 [x]

➡️➡️file1

➡️➡️file2

路径/folder1/folder2[x]/file将被转义为正确数量的

noglob rsync server:/folder1/folder2\[x\]/file1 .

获取file1和file2:

noglob rsync server:/folder1/folder2\[x\]/file[12] .

但这不是:

noglob rsync server:/folder1/folder2\[x\]/file{1..2} .

源端和目的端不能同时为远端

问题是..(我认为),所以我使用双引号"来逃避服务器部分。

noglob rsync "server:/folder1/folder2\[x\]/file{1..2}" .

(注意在[]之前只有2个)

但是,当构造带有自动完成的命令时,自动完成对文件夹名而不是文件名起作用。

noglob rsync "server:/

选项卡

noglob rsync "server:/folder1/

选项卡

noglob rsync "server:/folder1/folder2\[x\]/

选项卡

(无添加)

最后一个之后的预期结果是

noglob rsync "server:/folder1/folder2\[x\]/file

编辑:我刚刚注意到完成不工作只有当最后一个文件夹需要转义它的名称(其中的空格或[…])。

编辑2:补全使用单引号(转义只需要一个)。

noglob rsync 'server:/folder1/folder2[x]/

选项卡

noglob rsync 'server:/folder1/folder2[x]/file

补全使用单引号(转义只需要一个)。

noglob rsync 'server:/folder1/folder2[x]/

选项卡

noglob rsync 'server:/folder1/folder2[x]/file

相关内容

  • 没有找到相关文章

最新更新