使用“scp”或“rsync”中的标志定义目标目录(如“cp -t”)

使用“scp”或“rsync”中的标志定义目标目录(如“cp -t”)

cp由于我经常通过网络将不同数量的特定文件复制到(相当复杂的)目标目录,因此如果我可以使用's标志,我的生活会容易得多-t:有了它,您可以指定目标目录“at开始”——而不是作为最后的论点。

这样,我就可以CTRL-R执行复制命令,然后CTRL-W执行先前复制的文件,同时保留(复杂的)设置和目标系统和目录,无论之前有多少文件。

但我找不到任何合适的标志,无论是 forscp还是 for rsync。 (如果其中一个提供此选项,我会使用其中之一。)

scprsync提供类似的东西cp -t

在我的绝望中,我什至玩弄了bash历史控制,特别是参数提取机制:不幸的是,似乎不可能以“the”的形式指定范围X-最后一个参数”,我需要它,因为我并不总是有参数的数量(除非我计算......)。

答案1

也许你可以定义一个环绕的函数scp

scpt () {
    scp "$@" user@host:/some/convoluted/path
}

然后做

scpt file1
scpt /dir1/file2

scp另外,通过历史交互,您可以使用 获取上一个命令的最后一个参数!scp:$,因此您也可以这样做:

scp /dir1/file2 !scp:$

(因为目标目录通常是最后一个)

相关内容