在别名中使用 scp 时出错:不是常规文件

在别名中使用 scp 时出错:不是常规文件

我知道之前已经有人问过有关此错误的问题 - 但我似乎无法弄清楚为什么这在这种情况下不起作用:对于别名。

我有以下内容

alias scpip='scp $1 [email protected]:~'

我希望用例能够scpip file将文件复制到 ip.edu 中的用户主目录中。相反,我得到了错误

scp: /home/user: not a regular file

如果我“手动”执行它,它就会起作用,即 。我怎样才能使它作为带有参数的别名工作?scp file [email protected]:~

答案1

如果运行命令时,第一个参数 or$1是一个目录(看起来确实如此),那么您需要使用开关-r来复制它,无论它是否包含数据。它可以作为别名运行,但它更复杂并且不值得付出努力。最好只创建一个脚本。

scpip在/home/目录中创建一个名为的文件

内容如下:

scp -r $1 [email protected]:~

添加执行位:

chmod u+x /home/directory/scpip

在你的中~/.bashrc,添加行

export PATH=/home/directory:$PATH

获取初始化:

. ~/.bashrc

最后,运行脚本:

scpip file

这将使用第一个参数。如果是一个文件的话

scp -r file [email protected]:~

如果一个目录

scp -r directory [email protected]:~

相关内容